我们知道,java中,char
的本质就是数,所以,它可以比较大小,可以加加减减。
看一道经典的题目:
如何统计字符串中大写英文字母的个数?
解决办法很多很多。
这里,我们看一下使用char
的威力。
public class TestChar {
public static void main(String[] args) {
String str = "ggggefefAAvBdsZZZfeRVR";
countLetters(str);
}
public static void countLetters(String str) {
int[] arr = new int[26];
//遍历字符串的每个字母
for (int i = 0; i < str.length(); i++) {
//找到对应下标的字符
char c = str.charAt(i);
//如果是大写英文字母
if (c >= 'A' && c <= 'Z') {
//该英文字母的数量加1
arr[c - 'A']++;
}
}
System.out.println(Arrays.toString(arr));
}
}
c >= 'A' && c <= 'Z'
这样的代码就很优雅,它利用了char
本质为数的特点。
arr[c - 'A']++;
十分巧妙。比如c是B
,那么它减A
就是1,而这个1正好就是我们要保存结果的数组(arr
)的B的下标。