Split() - 在java中

时间:2011-10-21 16:04:15

标签: java split

所以我想说:

String string1 = "123,234,345,456,567*nonImportantData";
String[] stringArray = string1.split(", ");

String[] lastPart = stringArray[stringArray.length-1].split("*");
stringArray[stringArray.length-1] = lastPart[0];

有没有更简单的方法使这段代码有效?我的目标是将所有数字分开,无论stringArray是否包含nonImportantData。我应该使用子串方法吗?

3 个答案:

答案 0 :(得分:2)

实际上,String.split(...)方法的参数不是分隔符字符串而是正则表达式。

您可以使用

String[] splitStr = string1.split(",|\\*");

其中|是一个正则表达式OR和\\用于转义*因为它是regexp中的特殊运算符。你的split(“*”)实际上会抛出java.util.regex.PatternSyntaxException。

答案 1 :(得分:1)

我可能会在拆分字符串之前删除不重要的数据。

int idx = string1.indexOf('*');
if (idx >= 0)
  string1 = string1.substring(0, idx);
String[] arr = string1.split(", ");

如果'*'始终存在,您可以像这样缩短它:

String[] arr = str.substring(0, str.indexOf('*')).split(", ");

这与MarianP's approach不同,因为“不重要的数据”不会保留为数组的元素。根据您的申请,这可能有用也可能没用。

答案 2 :(得分:1)

假设你总是拥有你提供的格式......

String input = "123,234,345,456,567*nonImportantData";
String[] numbers = input.split("\\*")[0].split(",");