在分隔的字符串中求和整数

时间:2014-03-30 12:44:44

标签: java string integer sum

给定分隔符String作为输入,将所有数字加在一起。

例如:

addNumbers("12 24 36") -> 72 
addNumbers("12 12 100") -> 124

我尝试这个时会遇到数字格式异常。

String a="12 34 4 676";
String b=a.replaceAll(" ", "+");
long num=Long.parseLong(a);

2 个答案:

答案 0 :(得分:4)

是的,因为12+34+4+676不是数字,所以它是一个表达式。

在Java 8中,您可以执行以下操作:

final int sum = Stream.of(a.split("\\s")).
        mapToInt(Integer::parseInt).
        sum();

在Java 7中,您可以这样做:

int sum = 0;
for (final String s : a.split("\\s")) {
    sum += Integer.parseInt(s);
}

OP的评论:我不想使用数组

我喜欢挑战,所以这里有一个使用Scanner

的解决方案
final Scanner scanner = new Scanner(a);
int sum = 0;
while(scanner.hasNextInt()) {
    sum += scanner.nextInt();
}

答案 1 :(得分:0)

您无法解析包含运算符的字符串以直接获取值。使用split("\\s")拆分它,然后遍历数组并找到总和。