原理:
- 将字元串轉換成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 < string.length(); 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 < string.length(); 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();
calChar.lowCount(lowNum);
System.out.println();
calChar.upCount(upNum);
System.out.println();
calChar.count(nums);
}
public void count(int[] nums) {
//數字計數
for (int i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
System.out.print((char)(i+48)+":"+nums[i]+"個"+"\t");
}
}
}
//小寫字母計數
public void lowCount(int[] lowNum) {
for (int i = 0; i < lowNum.length; i++) {
if (lowNum[i] != 0) {
System.out.print((char) (i+97) + ":" + lowNum[i] + "個"+"\t");
}
}
}
//大寫字母計數
public void upCount(int[] ch) {
for (int i = 0; i < ch.length; i++) {
if (ch[i] != 0) {
System.out.print((char) (i+65) + ":" + ch[i] + "個"+"\t");
}
}
}
}
轉載于:https://www.cnblogs.com/jeasion/p/10758345.html