import java.util.*;
public class Example4 { public static void main(String[] args) {
 Scanner input = new Scanner(System.in);
 System.out.print("请输入任意一个整数:");
 int num = input.nextInt();
 int count = 0;
 do{
 num = num / 10;  //提取位数
 count++;
 }while(num > 0);
 System.out.println(count + "位");
 
}}

解决方案 »

  1.   

    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.print("请输入任意一个整数:");
    int num = input.nextInt();
    if (num <= 100000 && num > 0) {
    int count = 0;
    do {
    num = num / 10; // 提取位数
    count++;
    } while (num > 0);
    System.out.println(count + "位");
    } else {
    System.out.println("请输入10W以内数字。");
    }
    }
      

  2.   

    public static void main(String args[]) {
    Scanner input = new Scanner(System.in);
    boolean b = true;
    while(b){
    System.out.print("请输入任意一个整数:");
    int num = input.nextInt();
    int count = 0;
    do {
    num = num / 10; // 提取位数
    count++;
    } while (num > 0);

    System.out.println(count + "位");
    if(count<=5){
    b = false;
    }
    } }
      

  3.   

    我写错了 是十位数以内,这段代码是对的,如果输出11位的数提示
    Exception in thread "main" java.util.InputMismatchException: For input string: "10000000000"
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at Example4.main(Example4.java:7)
    我知道为什么只能输入十位数以内的数
      

  4.   

    System.out.println(Integer.MAX_VALUE);楼主打印一下这句话就知道了
    int类型最大支持的正数为2147483647
    所以你输入11位肯定不行。超过了int的范围。
      

  5.   

    这句话就是int类型的最大值,那么我可以用同样地方法打印出其他类型的取值范围吗?
      

  6.   


    我尝试了一下。。
    interger、double、float都有。
    可是你要大概的了解这几种基本数据类型的取值范围啊。
    java基础里有的。