给定分隔符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);
答案 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")
拆分它,然后遍历数组并找到总和。