有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图读取文件并将其拆分为单词,然后将这些单词存储在arrayList中

在我的代码中,当我要打印列表时,会返回一行,我不知道如何删除它,例如,如果我的文件包含这些行:
我想不出什么东西可以写
诸如此类的废话
当我打印出我的列表时,我得到了以下信息:
{我不能、想、想、写任何东西
废话,废话,废话

这是我的代码:

    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) 个答案

  1. # 1 楼答案

    这种情况之所以发生,是因为当你找到一个空格if( (char) i == ' ')时,你只是在拆分句子。如果您还想在新行上拆分,请使用

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

    注意:\n不是所有平台中的行分隔字符。好吧,它可以是\n\r\r\n中的任何一个