使用正则表达式

时间:2018-05-02 09:51:13

标签: java

enter image description here

enter image description here

enter image description here

我想在图片中拆分文件而我不能因为行...我得到的输出都在一起。即使有新行,正则表达式中正确的命令是什么?< / p>

2 个答案:

答案 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
  杆