统计某个字符串中有多少种字符,以及每个字符的个数:
num为该字符串的初始长度,将字符串的第一个字符与后面的每个字符进行equals,
如果相等num--,然后用空字符串替换该字符;依次递归。
charNum为字符个数。
/**
* 求出字符串中有多少种字符,以及每个字符的个数?
* @author 小苗
*
*/
public class CountCharNum {
private int num; //统计字符种类变量
public CountCharNum(String str){
this.num = str.length();
}
public int count(String str){
int leng = str.length();
if(leng == 0){
return num;
}else {
String a = str.substring(0, 1);
int charNum = 1; //统计字符个数变量
System.out.print("字符:"+a);
for (int i = 1; i < str.length(); i++) {
if(a.equals(str.substring(i, i+1))){
num--;
charNum++;
}
}
System.out.println(" "+charNum);
str = str.replace(a, "");
count(str); //用递归
}
return num;
}
public static void main(String[] args) {
String aString = "yekmaakkccekymbvbsf4w";
CountCharNum cc = new CountCharNum(aString);
System.out.println("共有字符类型:"+cc.count(aString));
}
}
还有一种更简单的方法:
public void countChar(String str){
int num=0;
while(!"".equals(str)){
String temp=str;
System.out.print("字符:"+str.substring(0, 1));
str=str.replaceAll(str.substring(0, 1), "");
System.out.println(" "+temp.length()-str.length());
num++;
}
System.out.println(" 字符种类数:"+num);
}