Java50道經典習題-程序7 處理字符串


題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
分析:利用while語句,條件為輸入的字符不為'\n'.

 1 import java.util.*;
 2 public class Prog7{ 
 3     public static void main(String[] args) {
 4         System.out.println("請輸入一串字符:");
 5         Scanner scan=new Scanner(System.in);
 6         //注:Scanner類中的next()方法遇到空格就不進去了,比如說輸入haha nene就只會得到haha,空格后面的都被忽略了,因此要用nextLine()
 7         String str=scan.nextLine();//將一行字符轉化為字符串 
 8         scan.close();
 9         count(str);
10     }
11     //統計輸入的字符數
12     private static void count(String str) {
13         String E1="[\u4e00-\u9fa5]";//此處使用了正則表達式[]匹配一個漢字。漢字Unicode 編碼范圍u4e00-u9fa5
14         String E2="[a-zA-Z]";//此處使用了正則表達式[],匹配所有字母
15         String E3="[0-9]";//此處使用了正則表達式[],匹配所有數字
16         String E4="[\\s]";//空格為\s,此處使用了轉義字符
17         int countChinese=0;
18         int countLetter=0;
19         int countNumber=0;
20         int countSpace=0;
21         int countOther=0;
22         char[] array_Char=str.toCharArray();//將字符串轉化為字符數組
23         String[] array_String=new String[array_Char.length];//漢字只能作為字符串處理
24         for(int i=0;i<array_Char.length;i++) 
25             array_String[i]=String.valueOf(array_Char[i]);
26         //遍歷字符串數組中的元素
27         for(String s:array_String) {
28             if(s.matches(E1))
29                 countChinese++;
30             else if(s.matches(E2))
31                 countLetter++;
32             else if(s.matches(E3))
33                 countNumber++;
34             else if(s.matches(E4))
35                 countSpace++;
36             else
37                 countOther++;
38         }
39         System.out.println("輸入的漢字個數:"+countChinese);
40         System.out.println("輸入的字母個數:"+countLetter);
41         System.out.println("輸入的數字個數:"+countNumber);
42         System.out.println("輸入的空格個數:"+countSpace);
43         System.out.println("輸入的其他字符個數:"+countOther);
44     }
45 }
46 /*運行結果
47 請輸入一串字符:
48 中文AbC  1234.、
49 輸入的漢字個數:2
50 輸入的字母個數:3
51 輸入的數字個數:4
52 輸入的空格個數:2
53 輸入的其他字符個數:2
54 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM