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