zoukankan      html  css  js  c++  java
  • Java50道经典习题-程序7 处理字符串

    题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
    分析:利用while语句,条件为输入的字符不为' '.

     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 */
  • 相关阅读:
    Codeforces Round #445 A. ACM ICPC【暴力】
    “玲珑杯”ACM比赛 Round #1
    HDU 6034 Balala Power!【排序/进制思维】
    2017多校训练1
    POJ 3620 Avoid The Lakes【DFS找联通块】
    Educational Codeforces Round 1D 【DFS求联通块】
    Openjudge1388 Lake Counting【DFS/Flood Fill】
    洛谷 P1506 拯救oibh总部【DFS/Flood Fill】
    小白书 黑白图像【DFS/Flood Fill】
    SSOJ 2316 面积【DFS/Flood Fill】
  • 原文地址:https://www.cnblogs.com/parkour1026/p/10796906.html
Copyright © 2011-2022 走看看