Java統計一個字串中每個字元出現的次數的方法
阿新 • • 發佈:2021-09-28
方法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+"個"); } } } } }