如何在Java中实现字符串拆分方法,如c#

时间:2014-03-23 17:33:29

标签: c# java string split

在C#中,如果我有这样的字符串:

String test = ";;;;";
String[] split = test.Split(';');
Console.WriteLine(split.Length); // Then I got 5 here

但在Java中:

String test = ";;;;";
String[] split = test.split(";");
System.out.println(split.length); // Then I got only 1 here

2 个答案:

答案 0 :(得分:9)

尝试:

  String test = ";;;;";
  String[] split = test.split(";", -1);
  System.out.println(split.length);

String API解释了此方法重载,同时添加了限制字段。

  

如果n是非正数,则模式将被应用尽可能多次,并且数组可以具有任何长度。

答案 1 :(得分:6)

使用:

test.split(";", -1);

这是一个不幸的设计决定;默认情况下,.split()将从结果数组的末尾修剪(大多数)空字符串。

如果您想要真实分割器,请使用Guava的Splitter。它比JDK的.split()方法执行得更好,不张扬,不必使用正则表达式作为参数!