尝试从文件中读取并将其拆分为单词并将这些单词存储在arrayList中

时间:2015-06-28 04:40:23

标签: java

在我的代码中,当我想打印出列表时,返回行,我不知道如何摆脱它,例如,如果我的文件包含这些行:
我想不出任何要写的东西 等等等等等等 当我打印出我的清单时,我得到了这个:
{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("}");


}

2 个答案:

答案 0 :(得分:1)

您是否反对导入图书馆? Apache StringUtils有一个分割空格的方法,返回标记中的所有其他内容。

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html#split%28java.lang.String%29

答案 1 :(得分:0)

这种情况正在发生,因为您只是在找到空格if( (char) i == ' ')时拆分句子。如果您想将它拆分为新行,请使用

if ( (char) i == ' ' || (char) i == '\n')

注意:\n不是所有平台中的分隔字符的行。 AFAIK,可以是\n\r\r\n中的任何人。