我必须在字符串中打印每个字母的频率

时间:2017-03-12 16:17:43

标签: java

在下面的代码中,如果我使用90到122,程序不起作用,但如果我使用65到92,即使字符是UpperCase,它仍然有效。

import java.util.Scanner;
class rep
{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        String s=sc.nextLine();
        s=s.toUpperCase();
        char b;
        int i,a,c;
        a=s.length();
        for(i=90;i<=122;i++){
            c=0;
            for(int j=0;j<a;j++){
                if((char)i==s.charAt(j)){
                    c+=1;
                }
            }
            if(c>0)
            System.out.println((char)i+"\t\t\t" +c);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

90-122是小写字母(97-122),而65-92是大写字母。你的代码中有这一行:s = s.toUpperCase();它将整个String转换为大写。这就是它没有检测到小写字母的原因。

顺便说一句。 Java惯例是用首字母大写命名你的类。