[英]Java - Read text file and store it using scanner, gives me empty ArrayList. Split words by using Delimeter
[英]trying to read from a file and split it into words and store those words in an arrayList
在我的代碼中,當我想打印出列表時,有行的返回並且我不知道如何清除它,例如,如果我的文件包含這些行:
我想不起要寫什么
等等等等等等
當我打印出我的清單時,我得到了:
{i,想不出要寫什么
等等等等等等}
這是我的代碼:
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>() ;
try(BufferedReader br = new BufferedReader(new FileReader("test.txt"));){
int i = 0;
String str = " ";
while((i = br.read()) != -1){
str += (char) i;
if( (char) i == ' '){
list.add(str.toString());
str = " " ;
}
}
list.add(str.toString());
}catch (Exception e){
System.out.println("there is an exception ");
}
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list){
System.out.print("{");
for(int i = 0; i<list.size(); i++){
if (i > 0)
System.out.print("," + list.get(i));
else
System.out.print(list.get(i));
}
System.out.print("}");
}
您反對導入庫嗎? Apache StringUtils有一個在空格上分割的方法,以令牌形式返回其他所有內容。
之所以發生這種情況,是因為您僅在找到空格if( (char) i == ' ')
時才拆分句子。 如果您還想將其拆分為新行,請使用
if ( (char) i == ' ' || (char) i == '\\n')
注意: \\n
並非在所有平台中都使用行分隔符。 AFAIK,它可以是\\n
或\\r
或\\r\\n
。中的任何一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.