统计某个字符串中有多少种字符,以及每个字符的个数:
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);
}
本文介绍了一种通过递归方法统计字符串中不同字符的数量及其出现次数的算法,并提供了一个简洁的替代方案。

被折叠的 条评论
为什么被折叠?



