Java,将字符串转换为整数然后将所有整数添加到一起

时间:2011-08-18 12:28:27

标签: java

我需要从字符串中添加8个数字。例如。如果有人输入说1234,它会将数字加在一起1 + 2 + 3 + 4 = 10然后1 + 1 = 2.我到目前为止已经这样做了。我无法弄清楚如何使用for循环添加这些数字。

String num2;     
String num3;   
num2 = (jTextField1.getText());
num3 = num2.replaceAll("[/:.,-0]", "");

String[] result = num3.split("");

int inte = Integer.parseInt(num3);

for (int i = 0; i < 8; i++){

// Stuck

}

4 个答案:

答案 0 :(得分:6)

那是怎么回事(我跳过例外......):

String[] sNums = jTextField1.getText().replaceAll("[^1-9]", "").split("(?<!^)");
int sum = 0;
for (String s : sNums) {
    sum += Integer.parseInt(s); // add all digits
}

while (sum > 9) { // add all digits of the number, until left with one-digit number
    int temp = 0;
    while (sum > 0) {
        temp += sum % 10;
        sum = sum / 10;
    }
    sum = temp;
}

答案 1 :(得分:0)

对于result中的每个元素,您需要将其转换为int,然后将其添加到某个变量,可能称为sum。

int sum = 0;

// for every String in the result array
for (int i = 0; i < BOUND; i++) { 
  // convert s[i] to int value
  // add the int value to sum
}

答案 2 :(得分:0)

这个伪代码应该不分割,数组等。

String s = "1234.56";
int sum = 0;
int i = 0;
while (i < s.length()) {
    char c = s.charAt(i)
    if (c >= '0' && c <= '9') sum += c - '0';
    i++;
}

应该导致sum = 21

答案 3 :(得分:0)

public static int addAll(String str) {
    str = str.replaceAll("[^1-9]", "");
    if (str.length() == 0)
        return 0;
    char[] c = str.toCharArray();
    Integer result = c[0] - 48;
    while (c.length > 1) {
        result = 0;
        for (int i = 0; i < c.length; i++) {
            result += c[i] - 48;
        }
        c = result.toString().toCharArray();
    }
    return result;
}