1. 程式人生 > >java程式設計:輸入一串小寫字串,統計每個字母出現的次數

java程式設計:輸入一串小寫字串,統計每個字母出現的次數

*需求:統計字串中每個字母:
 * 說明:編寫程式,提示使用者輸入一個字串,
 * 然後統計字串中每個字母出現的個數,忽略字母的大小寫。
 *
 * 原理:
 * 1.使用String類中的toLowerCase()方法,將字串中的大寫字母轉換成小寫形式。
 * 2.構造一個具有26個int值得陣列ch ,每個元素記錄一個字母出現的次數。
 *     即,ch[0]記錄a的個數,ch[1]記錄b的個數。
 * 3.對字元中的每一個字元,判斷其是否小寫字母,如果是,則陣列中的相應計數器加1.

第一種風格的原始碼:

package 第四天;

import java.util.Scanner;

public class 統計字元 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int[] a = new int[26];//陣列存放對應26個字母的出現次數比如a[0]的值對應字母a出現的次數,a[2]的值對應c出現的次數。。。
		System.out.println("請輸入一串小寫字串");
		String str=sc.nextLine();
		str=str.trim().toLowerCase();//去掉前後空格並且全轉為小寫字母
		
		//此for迴圈求各個字母出現的次數
		for (int i = 0; i < str.length(); i++)
		{
			char c = str.charAt(i);//依次取出每個字母
			int index=c-'a';//這樣就可以得到每個字母對應的陣列下標
			a[index]=a[index]+1;//對應字母出現則儲存字母的陣列加1
		}
		
		//此for迴圈列印每個字母出現的次數,沒有出現則不列印輸出
		for (int i = 0; i < a.length; i++)
		{
			if(a[i]!=0)//等於0相當於這個字母沒出現就沒必要列印
			{
				System.out.println("字母"+(char)(i+'a')+"出現:"+a[i]+"次");
			}
		}
	}

}
第一種風格的原始碼:把統計字母個數包裝成了一個靜態方法
package  第三天_練習題;
import java.util.Scanner;
public class 統計字元個數 {

	// 靜態方法統計出每個字母出現的次數
	public static int[] countLetters(String str) 
	{
		int[] a = new int[26];
		// 此for迴圈求各個字母出現的次數
		for (int i = 0; i < str.length(); i++)
		{
			char c = str.charAt(i);// 依次取出每個字母
			int index = c - 'a';// 這樣就可以得到每個字母對應的陣列下標
			a[index] = a[index] + 1;// 對應字母出現則儲存字母的陣列加1
		}
		return a;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();
		int[] a = countLetters(str);//呼叫統計各字母出現次數的函式,返回型別是陣列
		//此for迴圈列印每個字母出現的次數,沒有出現則不列印輸出
		for (int i = 0; i < a.length; i++)
		{
			if(a[i]!=0)//等於0相當於這個字母沒出現就沒必要列印
			{
				System.out.println("字母"+(char)(i+'a')+"出現:"+a[i]+"次");
			}
		}
	}
}