我有嚴重的問題來了解掃描程序類的工作原理。事實上,我想從這個輸入:如何掃描文本中沒有換行符的單詞?
AAAA BBBG GREZZ
ADFG GTRE
FREZZ
有這樣的輸出中的一個ArrayList: [AAAA,BBBG,GREZZ,ADFG,GTRE ,FREZZ]
我的代碼如下:
System.out.println("list of words?");
Scanner scan3 = new Scanner(System.in);
scan3.useDelimiter("[\\s+\\n]");
ArrayList<String> test = new ArrayList<String>();
while(scan3.hasNext()){
String temp = scan3.next();
if(temp.equals("STOP")){
break;
}else{
test.add(temp);
}
}
System.out.println(test);
我輸入的是:
AAAA BBBG GREZZ
ADFG GTRE
FREZZ STOP
而且我的輸出繼電器是: [AAAA,BBBG,GREZZ,ADFG,GTRE,FREZZ]
我的問題是雙重的:
- 爲什麼我甲肝e列表中插入一個空元素(這是我相信新行)?
- 正如您可能已經注意到的,爲了停止循環,我在末尾添加了字符串「STOP」,因爲條件scan3.HasNext()總是返回「true」,是否繼續進行?
非常感謝您的幫助。
謝謝你的回答。但是要使用'String.split()',我需要首先獲取完整的字符串,但爲此我需要掃描我的文本,以便它不會改進代碼,是嗎? 正如你所說的修改我的正則表達式後,我沒有空的條目了,但我不明白你的解釋: '你有兩個相鄰的行結束符':它怎麼可能? – user3125129
AAAA BBBG GREZZ ADFG GTRE 這兩行之間有2行結尾,所以當你拆分它時,會在空行找到空字符串。 –