我正在使用这样的命令行输入字符串:
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";
它没有返回我上面提到的其他两个字符串,为什么会发生这种情况请解释.
该方法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,如果我没有错).