1. 程式人生 > 其它 >Java統計一個字串中每個字元出現的次數的方法

Java統計一個字串中每個字元出現的次數的方法

方法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+"個");
				}
			}
		}
	}
}