/*
*读入一个16位的长整型,利用switch语句计算0—9这十个数字中,每个字出现的次数
**/
import java.util.Scanner;
class number{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.println("请输入一个16位的整数");
long a,temp; //变量声明
a=s.nextLong();
int b[]; //声明一个数组变量
b=new int[16]; //创建数组空间,确定数组长度
int n[]={0,0,0,0,0,0,0,0,0,0}; //初始化数组
System.out.println(a); //输出16位的数字
for(int i=1;i<=16;i++){ //for循环将16位数字存入数组中
temp=a; //将a的值赋给temp
a=temp%10; //将temp除以10取余的值赋给a
b[i-1]=(int)a; //将a强制转换成int型的值存入数组
a=(temp-a)/10; //将temp减去a再除以10的值赋给a
} //此循环从末尾 依次将16位长整数存入数组
for(int j=0;j<=15;j++){ //for循环,依次判断16个数字
switch(b[j]){ //将数组b中的数强制转换成整型,与case语句值比较
case 0: n[0]++; break; //与0比较,是0则执行语句
case 1: n[1]++; break; //一下与0同理
case 2: n[2]++; break;
case 3: n[3]++; break;
case 4: n[4]++; break;
case 5: n[5]++; break;
case 6: n[6]++; break;
case 7: n[7]++; break;
case 8: n[8]++; break;
case 9: n[9]++; break;
default:
}
}
for(int j=0;j<=9;j++){ //for循环依次输出比较之后的结果
System.out.println("数字"+j+"共出现"+n[j]+"次"); //输出各个数字出现次数
}
}
}