如何显示正数中的位数

时间:2015-10-02 00:22:11

标签: java

我在这里有代码但是我不确定在我将用户输入作为int后如何显示位数。

public class Chapter8 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n;
        System.out.print("Enter a positive integer: ");
        n = in.nextInt();
        if (n <= 0) {
            while (n != 0) {
                System.out.println(String.format("%02d", 5));
        } 
    }
} 

4 个答案:

答案 0 :(得分:0)

您可以将数字除以10.每次将数字缩短1位数,直至数字达到0:

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int n;
    System.out.print("Enter a positive integer: ");
    n = in.nextInt();
    int counter = 0;
    while(n > 0){
        n = n / 10;
        counter++;
    }
    System.out.println(counter);
}

答案 1 :(得分:0)

一个快速的解决方案是将整数转换为字符串,然后测量它有多少个字符:

String myNum = String.valueOf(n);
System.out.println(myNum.length());

答案 2 :(得分:0)

您可以简单地将整数转换为char数组。

int x = 20;
char[] chars = x.toCharArray();

然后你可以得到数组的长度。

int numberOfDigits = chars.length();

希望它有所帮助。

答案 3 :(得分:0)

如果您的老师像我一样狡猾,这会给您输入的数字位数以及结果数字中的位数......

import java.util.Scanner;

public class StackOverflow_32898761 {

    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);

        try
        {
            int n;

            System.out.println("Enter a positive integer: ");
            String value = input.next();

            try
            {
                n = Integer.parseInt(value);

                if (n < 0)
                {
                    System.out.println("I said a POSITIVE integer... [" + value + "]");
                }
                else
                {
                    System.out.println("You entered " + value.length() + " digits");
                    System.out.println("The resulting integer value has " + String.valueOf(n).length() + " digits");
                    System.out.println("The integer value is " + n);
                }           
            }
            catch (Exception e)
            {
                System.out.println("Invalid integer value [" + value + "]");
            }
        }
        finally
        {
            input.close();
        }
    }
}