所以我想说:
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。我应该使用子串方法吗?
答案 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(",");