字符串
题目:给定一个字符串,统计出每个字母出现次数
package com.desk.newone.string;
public class StringUtils {
public static void printStr(String str){
int[] count = new int[26];
for(int i=0;i<str.length();i++){
char temp = str.charAt(i);
int index = temp - 97; // 97是小写字母,65是大写字母
count[index] = count[index]+1;
}
for(int j=0;j<count.length;j++){
if(count[j] != 0){
System.out.println("字母"+(char)(j+97)+"出现次数:"+count[j]);
}
}
}
public static void printStrAndNumber(String str){
int charCount = 0;
int numberCount = 0;
int blankCount = 0;
int otherCount = 0;
for(int i=0; i<str.length(); i++){
char tmp = str.charAt(i);
if((tmp>='a'&&tmp<='z')||(tmp>='A'&&tmp<='Z')){
charCount++;
}
//主要不要写成tmp>0,这里是ascii码表比较
else if(tmp>='0' && tmp<='9'){
numberCount++;
}
else if(tmp==' '){
blankCount++;
}
else{
otherCount++;
}
}
System.out.println("英文字母出现次数:" +charCount);
System.out.println("数字出现次数:" +numberCount);
System.out.println("空格出现次数:" +blankCount);
System.out.println("其他字符出现次数:" +otherCount);
}
}
测试一:
StringUtils.printStr("dadfdfaf");
结果:
字母a出现次数:2 字母d出现次数:3 字母f出现次数:3
测试二
StringUtils.printStrAndNumber("dadfdfaf3343434 *");
结果:
英文字母出现次数:8 数字出现次数:7 空格出现次数:3 其他字符出现次数:1