如何使用"\n"拆分java中的字符串

abh*_*k92 1 java string

我正在使用这样的命令行输入字符串:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     String line = br.readLine();
Run Code Online (Sandbox Code Playgroud)

我想拆分这个字符串,它是:

String line = "int t; //variable t  
t->a = 0; //t->a does something  
return 0;"
Run Code Online (Sandbox Code Playgroud)

像这样:

String[] arr = line.split("\n");  
arr[0] = "int t; //variable t";  
arr[1] = "t->a=0; //t->a does something";  
arr[2] = "return 0";  
Run Code Online (Sandbox Code Playgroud)

但是当我运行我的java程序时,split函数只返回这个:

arr[0] = "int t; //variable t";

它没有返回我上面提到的其他两个字符串,为什么会发生这种情况请解释.

Chr*_*ian 5

该方法readLine()将读取输入,直到输入换行符.那个换行符是"\n".因此,它永远不会读取String分开的"\n".

一个解决方案

您可以使用while循环读取行并将它们存储在ArrayList:

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    List<String> lines = new ArrayList<String>();
    String line;

    while ((line = br.readLine()) != null) {
        lines.add(line);
    }

    for (String s : lines) {
        System.out.println(s);
    }
Run Code Online (Sandbox Code Playgroud)

要停止,while你必须按Ctrl+ z(或在UNIX中Ctrl+ d,如果我没有错).