一个字符串(其中包含汉字),写一段程序,统计这个字符串出现次数最多的字符,并打印此字符出现了几次
[code="java"]public class Test {
public void getMax(String a) {
char array[] = a.toCharArray();
char arrayb[] = a.toCharArray();
int[] sum = new int[array.length];
// 计算出字符串中每个字符出现的次数,用sum存储。。
for (int i = 0; i < array.length; i++) {
int count = 0;
for (int j = 0; j < arrayb.length; j++) {
if (array[i] == arrayb[j]) {
count++;
}
}
sum[i] = count;
}
// 取出次数最大的那个字符的下标。。。
int max = sum[0];
int index = 0;
for (int m = 0; m < sum.length; m++) {
if (max < sum[m]) {
max = sum[m];
index = m;
}
}
System.out.println("出现次数最多的字符:" + array[index]);
System.out.println("出现的次数:" + sum[index]);
}
public static void main(String[] args) {
Test test = new Test();
test.getMax("ad中国人中中df中a中");
}
}[/code]抽空给你敲了一段代码,希望对你有所帮助,当然,如果有更好的实现方法,可以共同学习。。。
[code="java"]public class PinFang {
char array_char[];
public int getInstances(String all, String choice) {
int total=0;
array_char=all.toCharArray();
for(int i=0;i<array_char.length;i++){
if (array_char[i]==(choice.charAt(0))){
total++;
}
}
return total;
}
public static void main(String[] args){
String appearance=new String("ADBCA AD你ACDBC BDA");
PinFang t=new PinFang();
System.out.println("A: " + t.getInstances(appearance, "A"));
System.out.println("B: " + t.getInstances(appearance, "B"));
System.out.println("C: " + t.getInstances(appearance, "C"));
System.out.println("D: " + t.getInstances(appearance, "D"));
System.out.println("你:"+t.getInstances(appearance, "你"));
}
}
[/code]
String strTest="asdf张 saf是张";
int len=0;
while(!"".equals(strTest)){
len=strTest.length();
String firstS=strTest.substring(0,1);
strTest=strTest.replaceAll(firstS, "");
System.out.println(firstS+"的字符个数是:"+(len-strTest.length()));
}
这样也可以实现