类似于split()的东西?

时间:2012-03-04 02:32:23

标签: java android string split

我正在寻找一个字符串,并在换行符时将其分解为一个数组(\ n)我尝试使用split但是它取消了分隔符。我需要将\n保留在每行的末尾(如果存在)。这样的事情是否已经存在或我是否需要自己编码?

3 个答案:

答案 0 :(得分:4)

  

我尝试使用split但是它会删除分隔符。我需要将\ n保存在每行的末尾(如果存在)。

如果在正则表达式中使用前瞻或后视,您仍然可以使用它并保留换行符。查看我所知道的最佳正则表达式教程:
Regex Tutorial
Look-Around section of the Regex Tutorial

例如:

public class RegexSplitPageBrk {


   public static void main(String[] args) {
      String text = "Hello world\nGoodbye cruel world!\nYeah this works!";
      String regex = "(?<=\\n)";  // with look-behind!

      String[] tokens = text.split(regex);

      for (String token : tokens) {
         System.out.print(token);
      }
   }
}

前瞻或后视(也称为“环顾四周”)对他们匹配的角色没有破坏性。

答案 1 :(得分:4)

使用Lookahead断言替代@Hovercraft解决方案:

String[] result = s.split("(?=\n)");

http://www.regular-expressions.info/lookaround.html

中关于Lookahead的更多详细信息

答案 2 :(得分:1)

另一个解决方案是在拆分后添加分隔符

String delimiter = "\n"
String[] split = input.split(delimiter);
for(int i = 0; i < split.length; i++){
    split[i] += delimiter;
}