原理:
- 将字符串转换成char字符数组
- 然后使用另一个数组存储
-
代码如下 public class CalChar { public static void main(String[] args) { Scanner scanner = new Scanner(); String string = (); char[] ch = new char[()]; int[] nums = new int[26]; ch =(); for (int i = 0; i < (); i++) { nums[ch[i]-97]=ch[i]-97; //这里较为巧妙,将底层字母ascii码转换成数组下标 } } }
加强版:统计数字,大写字母,小写字母
import ;
import ;
public class CalChar {
public static void main(String[] args) {
Scanner scanner = new Scanner();
String string = ();
char[] ch = new char[()];
int[] lowNum = new int[26];// 小写字母
int[] upNum = new int[26];// 大写字母
int[] nums = new int[10];// 数字
ch = ();
for (int i = 0; i < (); i++) {
// 小写字母 a~z =97 ~(97+26)
if (0 <= (ch[i] - 97) && (ch[i] - 97) <= 26) {
lowNum[ch[i] - 97]++;
}
// 大写字母 A~Z =65 ~(65+26)
if (0 <= (ch[i] - 65) && (ch[i] - 65) <= 26) {
upNum[ch[i] - 65]++;
}
// 数字 0~9 = 48 ~ (48+26)
if (0 <= (ch[i] - 48) && (ch[i] - 48) <= 9) {
nums[ch[i] - 48]++;
}
}
CalChar calChar = new CalChar();
(lowNum);
();
(upNum);
();
(nums);
}
public void count(int[] nums) {
//数字计数
for (int i = 0; i < ; i++) {
if (nums[i] != 0) {
((char)(i+48)+":"+nums[i]+"个"+"\t");
}
}
}
//小写字母计数
public void lowCount(int[] lowNum) {
for (int i = 0; i < ; i++) {
if (lowNum[i] != 0) {
((char) (i+97) + ":" + lowNum[i] + "个"+"\t");
}
}
}
//大写字母计数
public void upCount(int[] ch) {
for (int i = 0; i < ; i++) {
if (ch[i] != 0) {
((char) (i+65) + ":" + ch[i] + "个"+"\t");
}
}
}
}