将文本文件拆分为空行中的字符串

Sun*_*nny 7 java regex split

我想读取本地txt文件并读取此文件中的文本.之后,我想将整个文本拆分为Strings,如下例所示.

示例:假设文件包含 -

 abcdef                                 
 ghijkl

 aededd               
 ededed

 ededfe
 efefeef
 efefeff

 ......
 ......
Run Code Online (Sandbox Code Playgroud)

我想将此文本拆分为字符串

s1 = abcdef+"\n"+ghijkl;

s2 = aededd+"\n"+ededed; 

s3 = ededfe+"\n"+efefeef+"\n"+efefeff;

........................
Run Code Online (Sandbox Code Playgroud)

我的意思是我想在空行上分割文字.

我知道如何阅读文件.我想要帮助将文本拆分为字符串

Kev*_*vin 9

您可以将字符串拆分为数组

String.split();
Run Code Online (Sandbox Code Playgroud)

如果你想通过新线路来实现它

String.split("\\n\\n");
Run Code Online (Sandbox Code Playgroud)

UPDATE*

如果我明白你在说什么,那么约翰.

那么你的代码基本上就是

BufferedReader in
   = new BufferedReader(new FileReader("foo.txt"));

List<String> allStrings = new ArrayList<String>();
String str ="";
while(true)
{
    String tmp = in.readLine();
    if(tmp.isEmpty())
    {
      if(!str.isEmpty())
      {
          allStrings.add(str);
      }
      str= "";
    }
    else if(tmp==null)
    {
        break;
    }
    else
    {
       if(str.isEmpty())
       {
           str = tmp;
       }
       else
       { 
           str += "\\n" + tmp;
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

可能是你要解析的东西.

allStrings是所有字符串的列表.


小智 6

我会建议更通用的正则表达式:

text.split("(?m)^\\s*$");
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它将在任何行尾约定上正常工作,并且还将处理相同的空行和仅空格行。


Pus*_*ade 5

即使有用数据之间有 2 个以上的空行,下面的代码也能工作。

import java.util.regex.*;

// read your file and store it in a string named str_file_data

Pattern p = Pattern.compile("\\n[\\n]+");     /*if your text file has \r\n as the newline character then use Pattern p = Pattern.compile("\\r\\n[\\r\\n]+");*/
String[] result = p.split(str_file_data);
Run Code Online (Sandbox Code Playgroud)

(我没有测试代码,所以可能会有错别字。)