答案 0 :(得分:0)
这应该做:
protasi[] = string.split("\\r?\\n");
split("\n")
无法正常工作,因为您需要为\n
提供反斜杠,后者变为\\n
。我还添加了\\r
,这是我们应该用于换行/回车。
答案 1 :(得分:0)
您正在使用Scanner
阅读文件以获取每一行。
while(sc.hasNextLine())
每行添加StringBuffer
(不带分隔符)。
sb.append(sc.nextLine())
那时,文件包含:
foo
bar
会给StringBuffer
sb.toString(); //foobar
所以没有行分隔符...而是使用Scanner
。
while(sc.hasNextLine()){
String s = sc.nextLine();
System.out.println(s):
sb.append(s);
}
最后一件事,当你完成它们时,请关闭你用Scanner
打开的每个sc.close()
(这是一个很好的做法)。
编辑:
如果你想保留这个逻辑,只需在每行后面加一个行分隔符:
while(sc.hasNextLine()){
sb.append(sc.nextLine()).append("\n");
}
这样,您将始终拥有行分隔符,并且拆分将起作用
这会是什么样子的快速示例:
StringBuffer sb = new StringBuffer();
sb.append("foo").append("\n")
.append("bar").append("\n"); //fake "file reading"
String[] result = sb.toString().split("\n");
for(String s : result){
System.out.println(s);
}
FOO
杆