方法1:
package com.st.train;
import java.util.Arrays;
import java.util.Scanner;
/**
* 統計一個字符串中每個字符出現的次數
* 解決思路:
* 1.首先從鍵盤接收一個字符串
* 2.將這個字符串轉化為字符串數組
* 3.將這個數組進行排序
* 4.排序之后統計他出現的字數
*/
public class StatisticalCharacters5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
//把從鍵盤接受的字符串放到一個數組中存儲。
char[] chars = sc.nextLine().toCharArray();
//將數組進行排序
Arrays.sort(chars);
System.out.println(Arrays.toString(chars));
//定義計數器count
int count = 1;
/**
* 如果第一項等於第二項,第二項等於第三項,說明這個數出現了3次,也就是等於第n項,那么就出現了n次;
*/
//給數組長度+1;
char[] chars1 = Arrays.copyOf(chars,chars.length+1);
for(int i=1;i<chars1.length;i++){
if(chars1[i-1]!=chars1[i]||i==chars1.length-1){
System.out.println(chars1[i-1]+"出現的次數"+count);
count = 1;
}else if(chars1[i-1]==chars1[i]){
count++;
}
}
}
}
方法2:
package com.st.train;
import java.util.Arrays;
import java.util.Scanner;
public class StatisticalCharacters2 {
/**
* 題目:輸入一行字符,統計各個字符(漢字、字母、數字、空格、特殊符號)
* 出現的個數
*/
public static void main(String[] args) {
try (Scanner input = new Scanner(System.in)) {
System.out.println("請輸入一行字符:");
String s=input.nextLine();
char[] arr = s.toCharArray();
System.out.println(Arrays.toString(arr));
for(int i = 0 ; i < arr.length; i++) {
int count = 0;
//限制統計過的字符不在統計第二遍
if (arr[i] != 0 ) {
char c=arr[i];
for(int j = 0 ; j < arr.length ; j++) {
if(c == arr[j]) {
count++;
//將之前出現並統計過的字符賦值為0
arr[j] = 0;
}
}
System.out.println(c+"共有"+count+"個");
}
}
}
}
}