1 import java.util.Scanner; 2 3 /** 4 * 輸入一行字符,分別統計出其中的中英文字母,空格,數字和其他字符的個數 5 * 6 * @author xcx 7 * @time 2017年7月22日上午9:08:16 8 */ 9 public class Practice7 { 10 11 public static void main(String[] args) { 12 System.out.println("請輸入一串字符串,我們將統計出其中的中英文字母,空格,數字和其他字符的個數"); 13 Scanner scanner = new Scanner(System.in); 14 String string = scanner.nextLine(); 15 16 int numbersOfBlack = getNumbersOfBlack(string); 17 int numbersOfChinese = getNumbersOfChinese(string); 18 int numbersOfOthers = getNumbersOfOthers(string); 19 int numbersOfFigure = getNumbersOfFigure(string); 20 int numbersOfEnglish = getNumbersOfEnglish(string); 21 22 System.out.println("數字有:" + numbersOfFigure + "個"); 23 System.out.println("英文有:" + numbersOfEnglish + "個"); 24 System.out.println("空格有:" + numbersOfBlack + "個"); 25 System.out.println("漢字有:" + numbersOfChinese + "個"); 26 System.out.println("其它有:" + numbersOfOthers + "個"); 27 } 28 29 // 求字符串中空格的個數 30 public static int getNumbersOfBlack(String string) { 31 // 記錄字符串中空格的個數 32 int numbersOfBlack = 0; 33 // 將輸入的字符串轉化為字符數組 34 String[] strings = string.split(""); 35 for (int i = 0; i < strings.length; i++) { 36 if (strings[i].matches(" ")) { 37 numbersOfBlack++; 38 } 39 } 40 return numbersOfBlack; 41 } 42 43 // 求字符串中漢字的個數 44 public static int getNumbersOfChinese(String string) { 45 // 記錄字符串中漢字的個數 46 int numbersOfChinese = 0; 47 // 將輸入的字符串轉化為字符數組 48 String[] strings = string.split(""); 49 for (int i = 0; i < strings.length; i++) { 50 if (strings[i].matches("[\u4e00-\u9fa5]")) { 51 numbersOfChinese++; 52 } 53 } 54 return numbersOfChinese; 55 } 56 57 // 求字符串中英語字母的個數 58 public static int getNumbersOfEnglish(String string) { 59 // 記錄字符串中英語字母的個數 60 int numbersOfEnglish = 0; 61 // 將輸入的字符串轉化為字符數組 62 String[] strings = string.split(""); 63 for (int i = 0; i < strings.length; i++) { 64 if (strings[i].matches("[a-zA-Z]")) { 65 numbersOfEnglish++; 66 } 67 } 68 return numbersOfEnglish; 69 } 70 71 // 求字符串中數字的個數 72 public static int getNumbersOfFigure(String string) { 73 // 記錄字符串中數字的個數 74 int numbersOfFigure = 0; 75 // 將輸入的字符串轉化為字符數組 76 String[] strings = string.split(""); 77 for (int i = 0; i < strings.length; i++) { 78 if (strings[i].matches("[0-9]")) { 79 numbersOfFigure++; 80 } 81 } 82 return numbersOfFigure; 83 } 84 85 // 求字符串中數字的個數 86 public static int getNumbersOfOthers(String string) { 87 // 記錄字符串中數字的個數 88 int numbersOfOthers = string.split("").length 89 - getNumbersOfBlack(string) - getNumbersOfChinese(string) 90 - getNumbersOfEnglish(string) - getNumbersOfFigure(string); 91 return numbersOfOthers; 92 } 93 }