计算Java数组

时间:2017-10-20 11:33:11

标签: java

我已经研究了如何遍历数组并计算每个字母并返回。我通过将其与ascii值进行比较来完成此操作。我遇到的问题是,我也不能把它视为大写。如何将其设置为也计算大写字母?

package test;

import java.util.Arrays;

public class arrays {
    public static void array(char[] charAlphabet) {
        int intCount = 97;
        int intNumberof = 0;
        //sort the array into alphabetical order
        Arrays.sort(charAlphabet);
        //look at each character
        for(int x = 0; x < charAlphabet.length;) {
            //if the position of the character is equal to its place in the alphabet, increase the count
            if(charAlphabet[x] == intCount) {
                intNumberof++;
                x++;
            }
            //when it reaches the end of the letters, print it
            else {
                intCount++;
                //print the letter and the number of letters
                System.out.println(Character.toString(charAlphabet[x -1]) + " x " + intNumberof);
                intNumberof = 0;
            }
        }
    }

    //input
    public static void main(String[] dfsgsdg) {
        char[] charAlphabet = "aabcdefghijklmnoapqrstuvwxyaz".toCharArray();
        array(charAlphabet);

    }
}

- 编辑 -

刚才意识到实际上我的逻辑略有偏差,因为它实际上错过了数组中的最后一个字符,但是如果我删除了打印上的-1,它实际上错过了第一个字符。

2 个答案:

答案 0 :(得分:0)

尝试“ABa”,它不会找到“a”(97)两次intNumberof++

“a22c”也一样。

忘记排序并检查charAlphabet[x].isUpperCase() resp的每个字母。 isLowerCase()

答案 1 :(得分:0)

您可以将每个字符作为字符串,然后应用此逻辑。

String temp= str;
If(str.toUpperCase().equals(temp)){
  //It is uppercase
}
else{
//lower case
}