Java学习(6):输入一串字符串,分别统计出其中的中英文字母,空格,数字和其他字符的个数
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 }