第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 ArrayList 中的最后一個元素存儲到另一個 ArrayList (Java)

如何將 ArrayList 中的最后一個元素存儲到另一個 ArrayList (Java)

慕無忌1623718 2021-12-22 16:45:28
我有一個文本文件,讀取NFR1: (some text) NFR2: (some text)NFR3: (some text)我想將具有模式“N”的文本文件中的所有字符串分組。這是我到目前為止的代碼:import java.util.List;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main {public static void main(String[] args) throws FileNotFoundException {    List<String> result = new ArrayList<String>();    Pattern patt = Pattern.compile("^N.*");    BufferedReader r = new BufferedReader(new FileReader("fileName"));    String line;    try {        while ((line = r.readLine()) != null) {          Matcher m = patt.matcher(line);          while (m.find()) {            int start = m.start(0);            int end = m.end(0);            result.add(m.group());            System.out.println(result);          }        }    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}}輸出如下:[NFR1:][NFR1:,NFR2:][NFR1:,NFR2:,NFR3]我如何讓數組只讀[NFR1:,NFR2:,NFR3]沒有上面的其他兩個元素?當我添加代碼行以獲取最后一個元素時:if (result != null && !result.isEmpty()) {              System.out.println("Last element is:");              System.out.println(result.get(result.size()-1));             }輸出是:The last element is:NFR1:The last element is:NFR2:The last element is:NFR3:我究竟做錯了什么?
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

你沒有做錯任何邏輯。只是您在 while 循環(huán)內而不是在外面打印。


while ((line = r.readLine()) != null) {

  Matcher m = patt.matcher(line);

  while (m.find()) {


    int start = m.start(0);

    int end = m.end(0);

    result.add(m.group());

    //System.out.println(result); printing inside and so first u add 1 then 2 then 3.

  }

}


System.out.println(result);//Move here

if(!result.isEmpty()){//result != null is redundant. You have already initialized.

  System.out.println("Last element is:" + result.get(result.size() - 1));

}


查看完整回答
反對 回復 2021-12-22
?
MM們

TA貢獻1886條經驗 獲得超2個贊

因為您在循環(huán)中打印輸出,每個循環(huán)都會有一個輸出。


要糾正它,只需將輸出移出循環(huán)即可。


例如


List<Integer> rest = new ArrayList<Integer>();

for(int i=0;i<2;i++){

rest.add(i);

System.out.println(result);

}

輸出


i=0: [0]

i=1: [0,1]

糾正它:


List<Integer> rest = new ArrayList<Integer>();

for(int i=0;i<2;i++){

rest.add(i);

}

System.out.println(result);

結果將輸出 [0,1]


查看完整回答
反對 回復 2021-12-22
  • 2 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號