字符串相关问题

131 阅读1分钟

字符串

题目:给定一个字符串,统计出每个字母出现次数

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