java中如何获取一个正整数的位数?
第一种(使用%,math.log)
int a = 1104;
// 最后一位
System.out.println(a % 10);
int m = 1;
for (int i = 0; i < (int) Math.log10(a); i++) {
m *= 10;
}
// 第一位
System.out.println(a / m);
第二种(转换为字符串)
Scanner input=new Scanner(System.in);
System.out.println("请输入数字:");
int shu=input.nextInt();
String s=String.valueOf(shu);
//或使用:String s=Integer.toString(shu);
int t=s.length();
System.out.println("你输入的数的位数为:" + t);
计算各位的数字之和
import java.util.Scanner;
/**
* 计算数字的每一位之和
* @author haha
*
*/
public class jisuanxinhao {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入一个正整数来计算各位的和:");
int num = input.nextInt();
int Temonum;
String str = String.valueOf(num);
int Tempnum = num;//不直接修改输入的数字,定义一个承接变量;
int i = 0,sum=0;//初始化,拆分计算的整型数字
//循环操作计算累加
if (str.length() < 7) //防止输入的数字超出int范围
{
while(Tempnum != 0) {
sum += Tempnum%10;//取模获取数字的最后一位
Tempnum /= 10;//除法祛除最后一位数“卸磨杀驴”
//打印结果
}
System.out.printf("数字%d的各位数的结果为:%d\n",num,sum);
}else {System.out.println("out of range");
}
//String str = String.valueOf(num);//将数字转换为字符串
//System.out.println(str.length());//通过得到字符串的个数来获取计算数字的位数
}
}