昨日去筆試了,遇到了一道編程題,因為經常坐在電腦前面,使用開發工具已經習慣了“alt+/”,導致了平時有些方法不是很註意看,於是在整理了思路之後,寫方法的時候,完蛋了,卡殼了....導致那道題做得不是盡如人意....現在筆者將之整理出來,希望加深自己的印象的同時也能夠對讀者有所幫助。 題目:從鍵盤中 ...
昨日去筆試了,遇到了一道編程題,因為經常坐在電腦前面,使用開發工具已經習慣了“alt+/”,導致了平時有些方法不是很註意看,於是在整理了思路之後,寫方法的時候,完蛋了,卡殼了....導致那道題做得不是盡如人意....現在筆者將之整理出來,希望加深自己的印象的同時也能夠對讀者有所幫助。
題目:從鍵盤中輸入一個字元串,然後分別統計出該字元串中的字元,數字,空格以及其他字元等等的個數
有輸入,筆者當時第一個想到的是Scanner類,等到變數定義好了,Scanner實例創建完了之後,發現其中的方法忘記了,以致於卡在這裡...現在將回來之後的代碼貼在下麵:
package com.ygh.pencilTest; import java.util.Scanner; /** * 從鍵盤中輸入一個字元串,然後分別統計出該字元串中的字元,數字,空格以及其他字元等等的個數 * * @author 夜孤寒 * @version 1.1.1 */ public class JudgeString_01 { public static void main(String[] args) { System.out.println("請輸入一串字元串:"); int digital = 0;// 數字 int character = 0;// 英文 int blank = 0;// 空格 int other = 0;// 其他 // 從鍵盤鍵入 Scanner san = new Scanner(System.in); // 獲取到輸入的字元串 String str = san.nextLine(); // 將獲得的字元串放到一個char數組中 char[] charArray = str.toCharArray(); // 將數組中的字元串取出來,然後判斷類型並且進行個數的計算 for (int i = 0; i < charArray.length; i++) { if (charArray[i] >= '0' && charArray[i] <= '9') { digital++; } else if ((charArray[i] >= 'a' && charArray[i] <= 'z') || charArray[i] >= 'A' && charArray[i] <= 'Z') { character++; } else if (charArray[i] == ' ') { blank++; } else { other++; } } // 輸出結果 System.out.println("數字的個數:" + digital); System.out.println("字母的個數:" + character); System.out.println("空格的個數:" + blank); System.out.println("其他的個數:" + other); } }
運行結果:
第二種方式,是使用BufferedReader這個類,將輸入的字元讀取出來,同樣的這裡和Scanner類似需要記住readLine()方法,而Scanner需要記住的方法則是nextLine()方法。所以所以現在筆者將第二種方式實現貼出來,以作參考,但是一般提到輸入兩個字眼,筆者最先想到的就是Scanner類....
package com.ygh.pencilTest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 從鍵盤中輸入一個字元串,然後分別統計出該字元串中的字元,數字,空格以及其他字元等等的個數 * * @author 夜孤寒 * @version 1.1.1 */ public class JudgeString_02 { public static void main(String[] args) throws IOException { System.out.println("請輸入一串字元串:"); int digital = 0;// 數字 int character = 0;// 英文 int blank = 0;// 空格 int other = 0;// 其他 // 從鍵盤輸入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // String str = br.readLine(); // System.out.println(str); // 判斷 for (int i = 0; i < str.length(); i++) { // 將str轉換成char char c = str.charAt(i); // 判斷c的類型 if (c >= '0' && (int) c <= '9') { digital++; } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) { character++; } else if (c == ' ') { blank++; } else { other++; } } //輸出個數了 System.out.println(digital); System.out.println(blank); } }
運行結果: