String pieces[] = msg.split(",");
int sum=0;
StringBuffer sb = new StringBuffer();
for(int i=0;i < pieces.length;i++){
if(org.apache.commons.lang.math.NumberUtils.isNumber(pieces[i])){
sb.appendpieces[i]();
}else{
int i = Integer.parseInt(pieces[i]));
sum+=i;
}
}
System.out.println(sum+","+sb.);
}
# 3 楼答案
String[] parts = msg.split(",");
int sum = 0;
StringBuilder stringParts = new StringBuilder();
for (String part : parts) {
try {
sum += Integer.parseInt(part);
} catch (NumberFormatException ex) {
stringParts.append("," + part);
}
}
stringParts.insert(0, String.valueOf(sum));
System.out.println(stringParts.toString()); // the final result
# 1 楼答案
解决你的问题:
# 2 楼答案
# 3 楼答案
请注意,应该避免使用异常作为控制流的上述做法。我认为这是一个例外,因为没有方法验证字符串的“可分析性”。如果有
Integer.isNumber(string)
,那就是正确的选择。实际上,您可以创建这样一个实用方法。勾选this question