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