Java整数数字阅读器

时间:2012-10-17 23:27:39

标签: java digit

我正在创建一个需要逐位读取5位整数的方法。 (即26505将被读取为2 6 5 0 5,并且每个数字可以在另一种方法中单独读取)我无法将整数转换为字符串并读取每个字符,因为我需要通过另一种方法读取数字。它也被建议使用%10,但这不会给我个人数字。此外,需要从左到右逐位读取整数。我希望这很清楚,但我真的很困惑如何完成这一点,我尝试过的一切都行不通。任何提供的帮助将不胜感激,谢谢。

    while(d>=10){  
    j=code%d;
    d=d/10;
    printDigit(j)

4 个答案:

答案 0 :(得分:3)

从左到右获取单个数字: -

26505 / 10000 = 2
26505 % 10000 = 6505

6505 / 1000 = 6
6505 % 1000 = 505

505 / 100 = 5
505 % 100 = 5

5 / 10 = 5 

我认为你现在可以实现它了。

但是,如果你没有从右到左遍历,那就更容易了,因为那样你的分母将固定为10: -

26505 % 10 = 5
26505 / 10 = 2650

2650 % 10 = 0
2650 / 10 = 265

265 % 10 = 5
265 / 10 = 26

26 % 10 = 6
26 / 10 = 2

2 % 10 = 2 

答案 1 :(得分:3)

这将返回一个整数位数的数组。

public static int[] integerToDigits(int n)
{
    int[] digits= new int[5];
    int temp = n;
    for(int i = 0; i < 5; i++)
    {
        digits[4-i] = temp % 10;
        temp /= 10;
    }
    return digits;
}

integerToDigits(12345) = {1,2,3,4,5}

答案 2 :(得分:0)

完全懒惰的东西看起来像

final int [] digits = {score % 1000 / 100, score % 100 / 10, score % 10};

如果您知道您的整数将永远不会超过999,那将会有效。

从这个例子中,通过从整数计算下一个10的幂,然后在循环中向数组添加数字来改进它以支持任意整数是微不足道的。

答案 3 :(得分:0)

你可以这样做:

  1. 您可以创建一个整数数组,并将用户输入字符串的每个字符解析并存储到数组中
  2. 然后您可以将此数组用于其他方法。
  3. e.g。

    Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        int[] digitArray = new int[str.length()];
        for(int i=0; i<str.length(); i++)
        {
            String temp = Character.toString(str.charAt(i));
            System.out.println("temp is "+temp);
            digitArray[i] = Integer.parseInt(temp);
        }
        for (int i =0; i<digitArray.length; i++) {
            System.out.println(digitArray[i]);
        }