我正在使用这样的命令行输入字符串:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
我想拆分这个字符串:
String line = "int t; //variable t
t->a = 0; //t->a does something
return 0;"
像这样:
String[] arr = line.split("\n");
arr[0] = "int t; //variable t";
arr[1] = "t->a=0; //t->a does something";
arr[2] = "return 0";
但是当我运行我的 java 程序时,split 函数只返回这个:
arr[0] = "int t; //variable t";
它没有返回我上面提到的其他两个字符串,为什么会这样,请解释。
最佳答案
readLine()
方法将读取输入直到输入换行符。该换行符是 "\n"
。因此,它永远不会读取由 "\n"
分隔的 String
。
一个解决方案:
您可以使用 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);
}
要停止 while
,您必须按 Ctrl + z(或 Ctrl + d 在 UNIX 中,如果我没记错的话)。
关于java - 如何使用 "\n"在 java 中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602113/