给定String =“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);
}
}
答案 0 :(得分:0)
你可以这样做:
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);
}
它只是将字符串向上分割+
以将单个数字作为数组,然后循环遍历数组并将每个数字值添加到和变量。