我已经研究了如何遍历数组并计算每个字母并返回。我通过将其与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,它实际上错过了第一个字符。
答案 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
}