给定字符串=“128+16+8+2+1” 答案应打印出 155
代码应该将字符串中的所有数字相加,并且答案应该作为字符串打印出来。 我尝试为此编写代码,但是最后 2 个数字不会相加,我当前的答案是打印出 153。寻求帮助以引导我找到正确的解决方案。
import java.util.stream.*;
public class add {
static void evalA(String s) {
int n = countChar(s,'+');
System.out.println(s);
int cnt = 0;
int[] data = new int[n];
for(int i=0;i<s.length();i++) {
if (s.charAt(i)=='+') {
System.out.println(s.substring(0,i));
data [cnt] = Integer.parseInt(s.substring(0,i));
cnt++;
s = s.substring(i+1,s.length()-1);
i=0;
}
}
String sum = ""+IntStream.of(data).sum();
System.out.println(sum);
}
}
最佳答案
你可以这样做:
public static void main(String[] args)
{
evaluate("128+16+8+2+1");
}
public static void evaluate(String equation)
{
String[] numbers = equation.split("\\+");
int sum = 0;
for (String number : numbers)
{
//could wrap this in a check incase of exception or errors
sum += Integer.parseInt(number);
}
System.out.println(sum);
}
它只是用 +
分割字符串,以数组形式获取各个数字,然后循环遍历该数组并将每个数字值添加到 sum 变量中。
关于java - 求一串由运算符分隔的数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48697713/