方法一:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
if (num == 0){
System.out.println("该数有1位");
}else {
int n = 0;
while (num != 0){
num /= 10;
n++;
}
System.out.println("该数有"+n+"位");
}
}
方法二:(此方法源自网络)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt();
System.out.println("该数有"+Integer.toString(num).length()+"位");
}
补充:
int-->String
- Integer.toString(a) //使用String类的静态方法,只产生一个对象 ,返回基数为10的参数的字符串表示。
- String.valueOf(a) //使用String类的静态方法,只产生一个对象 ,返回int参数的字符串表示形式。
- “”+a //会产生两个String对象
String-->int
- Integer.parseInt(a) //使用静态方法,只产生一个对象,会抛出异常,返回十进制参数表示的整数值。
- Integer.valueOf(a).intValue() //Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),返回Integer对象,保存字符串参数表示的值,也会抛异常,但会多产生一个对象。intValue()转换为类型 int
(补充内容部分转载自网络)
如果需要:输入内容为0123,输出结果为4位数,采用以下方法(目前只找到这一种)
方法三:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
String num = scanner.next();
System.out.println("该数有"+num.length()+"位");
}