先上一个一开始写的版本
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String n=bf.readLine();
int zero,one,two,three,four,five,six,sevent,eight,ninth;
zero=one=two=three=four=five=six=sevent=eight=ninth=0;
for(int i=0;i<n.length();i++) {
String temp = n.substring(i,i+1);
if(temp.equals("0")) {
zero++;
}
else if(temp.equals("1")) {
one++;
}
else if(temp.equals("2")) {
two++;
}
else if(temp.equals("3")) {
three++;
}
else if(temp.equals("4")) {
four++;
}
else if(temp.equals("5")) {
five++;
}
else if(temp.equals("6")) {
six++;
}
else if(temp.equals("7")) {
sevent++;
}
else if(temp.equals("8")) {
eight++;
}
else {
ninth++;
}
}
if(zero!=0)
System.out.println("0:"+zero);
if(one!=0)
System.out.println("1:"+one);
if(two!=0)
System.out.println("2:"+two);
if(three!=0)
System.out.println("3:"+three);
if(four!=0)
System.out.println("4:"+four);
if(five!=0)
System.out.println("5:"+five);
if(six!=0)
System.out.println("6:"+six);
if(sevent!=0)
System.out.println("7:"+sevent);
if(eight!=0)
System.out.println("8:"+eight);
if(ninth!=0)
System.out.println("9:"+ninth);
}
}
AC了,但是很耦合
改一改
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String n=bf.readLine();
int[] num = new int[10];
for(int i=0;i<n.length();i++) {
char temp = n.charAt(i);
num[com(temp)]++;
}
for(int i=0;i<10;i++) {
if(num[i]!=0) {
System.out.println(i+":"+num[i]);
}
}
}
public static int com(char temp) {
switch(temp) {
case'0':return 0;
case'1':return 1;
case'2':return 2;
case'3':return 3;
case'4':return 4;
case'5':return 5;
case'6':return 6;
case'7':return 7;
case'8':return 8;
case'9':return 9;
}
return -1;
}
}