我需要分隔一个整数然后在java中将数字加在一起

时间:2012-05-25 15:45:37

标签: java

早上好,我现在上第4课,并且在使用循环时遇到了一些麻烦。请注意我已经看到它使用字符串解决了,但我试图掌握循环。

出现问题的原因是我需要显示两个答案:整数分为单个数字ex:567 = 5 6 7

然后567 = 18

我能够将整数加在一起,但不确定如何先将整数分开,然后将各个数字加在一起。我想我需要将其分解为0.例如,如果它是一个5位数/ 10000,/ 1000,/ 100,/ 10,/ 1

但是如果用户想要做6或7甚至8位数呢?

另外我假设这必须先行,然后才会增加个别整数?

感谢您的指导:

import java.util.Scanner;

public class spacing {

      public static void main(String[] args) {

            Scanner in = new Scanner(System.in);

            int n;

            System.out.print("Enter a your number: ");

            n = in.nextInt();   

                  int sum = 0;          

                  while (n != 0) {

                        sum += n % 10;

                        n /= 10;

                  }
                  System.out.println("Sum: " + sum);

        }
}

2 个答案:

答案 0 :(得分:5)

由于这是一个教训,我不会直接给你解决方案,但我会给你一些提示:

  1. 你只是在考虑int。请改为String。 :)这也将处理用户为您提供大量数字的数字的情况。
  2. 需要验证您的输入;如果有人输入“12abc3”怎么办?
  3. String.charAt(int)会有所帮助。
  4. Integer.parseInt(String)也会有所帮助。
  5. 您还可以使用long代替int; long的上限为9,223,372,036,854,775,807。

答案 1 :(得分:0)

//I assume that the input is a string which contains only digits
public static int parseString(String input)
{
    char[] charArray = input.toCharArray();
    int sum = 0;
    for (int index = 0; index < input.length; index++)
    {
        sum += Integer.parseInt(charArray[index] + "");
    }
    return sum;
}

使用上述功能,将输入传递给函数并根据需要使用输出。