Java Integer补充

时间:2012-10-16 19:49:16

标签: java integer addition

我的程序让用户输入一个5位数的数字,我需要一种方法来取5位整数并将所有数字加在一起。例如,用户输入26506,程序执行2 + 6 + 5 + 0 + 6并返回19.我相信这可以通过某种循环完成但不确定从哪里开始。

为了澄清,这个整数可以是任何东西,只需要5位数。

7 个答案:

答案 0 :(得分:6)

从我的脑海中,您可以将其转换为字符串并迭代每个char,并使用(charAt(position) - '0')累积值。我现在远离java编译器,但我想这应该可行。只需确保您只有数字数据。

答案 1 :(得分:5)

int sum = 0;
while(input > 0){
    sum += input % 10;
    input = input / 10;
}

答案 2 :(得分:3)

每次modulus 10后,您都会在ones处获得数字。每次divide您的号码加10,您将获得除ones数字以外的所有数字。因此,您可以使用此方法将所有数字相加: -

22034 % 10 = 4
22034 / 10 = 2203

2203 % 10 = 3
2203 / 10 = 220

220 % 10 = 0
220 / 10 = 22

22 % 10 = 2
22 / 10 = 2

2 % 10 = 2

添加所有这些..(4 + 3 + 0 + 2 + 2 = 11)

答案 3 :(得分:2)

你需要除以模数:

26506 / 10000 = 2
26506 % 10000 = 6506

6506 / 1000 = 6
6506 % 1000 = 506

506 / 100 = 5
506 % 100 = 6

6 / 10 = 0
6 % 10 = 6

6 / 1 = 6

因此,每个除法的结果是该base10位的数字,为了得到下一个较小的有效数字,你取模数。然后重复一遍。

答案 4 :(得分:2)

如果您的输入是字符串:

public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Enter your number: ");


        try{
            BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
            String input = bufferRead.readLine();
            char[] tokens;
            tokens = input.toCharArray();
            int total=0;
            for(char i : tokens){
                total += Character.getNumericValue(i);
            }
            System.out.println("Total: " + total);

            }catch(IOException e){
                e.printStackTrace();
            }            
    }

如果您的输入是整数,请使用

    String stringValue = Integer.toString(integerValue);

并将其插入。

答案 5 :(得分:0)

有两种方法:

使用以下代码取消数字:(假设数字仍为5个字符)

int unpack(int number)
{
    int j = 0;
    int x = 0;
    for(j = 0; j < 5; j++){
        x += number % 10;
        number = number / 10;
    }
    return x;
}

将其放入字符串并选择单个字符并解析     整数:

int sumWithString(String s)
{
    int sum = 0;
    for(int j = 0;j < 5;j++){
        try{
        sum += Integer.parseInt(""+s.charAt(j));
        }catch(Exception e){ }
    }
    return sum;
}

答案 6 :(得分:0)

    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter number: ");
    String s = scanner.nextLine();

    char[] a = s.toCharArray();
    int total = 0;

    for(char x: a){
        try {
            total += Integer.parseInt(""+x);
        } catch (NumberFormatException e){
            // do nothing
        }
    }

    System.out.println(total);

这将省略任何非数字字符。