做入学测试时出现了这道题。看大部分人做都用到了数组,Map等方法。由于对Map掌握比较欠缺。所以跟大家分享一种更适用于初学者的方法。
public class Test4{
public static void main(String[] args){
//输入一串字符串
String str = "abcdfasdaf";
//我的思路:先遍历从a~z,在拿a一一和字符串中的数字进行比较
// 如果相等,则数字加一。但这样会出现num一直加,或者出现
// 输出num一直等于0的情况,对于第一种情况,则在比较完一个
// 字符串后,另num重新等于1.第二种情况,如果出现0,则跳出
// 本次循环,进入下次循环。
for(char i = 'a';i <= 'z';i++){
int num = 0;
for(int j = 0;j<str.length();j++){
if(i == str.charAt(j)){
num++;
}
}
if(num == 0){continue;}
System.out.println(i+"("+num+")");
}
}
}
欢迎大家批评指正:D |
|