输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

简介: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。


程序分析:利用while语句,条件为输入的字符不为’\n’.


方法一:


import java.util.Scanner;
public class Prog7_1{
  public static void main(String[] args){
    System.out.print("请输入一串字符:");
    Scanner scan = new Scanner(System.in);
    String str = scan.nextLine();//将一行字符转化为字符串
    scan.close();
    count(str);
  }
  //统计输入的字符数
  private static void count(String str){
    String E1 = "[\u4e00-\u9fa5]";//汉字
    String E2 = "[a-zA-Z]";
    String E3 = "[0-9]";
    String E4 = "\\s";//空格
    int countChinese = 0;
    int countLetter = 0;
    int countNumber = 0;
    int countSpace = 0;
    int countOther = 0;
    char[] array_Char = str.toCharArray();//将字符串转化为字符数组
    String[] array_String = new String[array_Char.length];//汉字只能作为字符串处理
    for(int i=0;i<array_Char.length;i++)
      array_String[i] = String.valueOf(array_Char[i]);
    //遍历字符串数组中的元素
    for(String s:array_String){
      if(s.matches(E1))
        countChinese++;
      else if(s.matches(E2))
        countLetter++;
      else if(s.matches(E3))
        countNumber++;
      else if(s.matches(E4))
        countSpace++;
      else
        countOther++;
    }
    System.out.println("输入的汉字个数:"+countChinese);
    System.out.println("输入的字母个数:"+countLetter);
    System.out.println("输入的数字个数:"+countNumber);
    System.out.println("输入的空格个数:"+countSpace);
    System.out.println("输入的其它字符个数:"+countSpace);
  }
}


方法二:

import java.util.*;
public class Prog7_2{
  public static void main(String[] args){
    System.out.println("请输入一行字符:");
    Scanner scan = new Scanner(System.in);
    String str = scan.nextLine();
    scan.close();
    count(str);
  }
  //统计输入的字符
  private static void count(String str){
    List<String> list = new ArrayList<String>();
    char[] array_Char = str.toCharArray();
    for(char c:array_Char)
      list.add(String.valueOf(c));//将字符作为字符串添加到list表中
    Collections.sort(list);//排序
    for(String s:list){
      int begin = list.indexOf(s);
      int end = list.lastIndexOf(s);
      //索引结束统计字符数
      if(list.get(end)==s)
        System.out.println("字符‘"+s+"’有"+(end-begin+1)+"个");
    }
  }
}
目录
相关文章
|
4月前
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
48 1
输入一个字符判断是数字还是字母 如果是字母是大写字母还是小写字母 是声母还是韵母
|
1月前
|
人工智能
将两个数字用字符串输入,因为b它字符都一样,
将两个数字用字符串输入,因为b它字符都一样,
|
3月前
统计出其中英文字母、空格、数字和其它字符的个数
【6月更文挑战第8天】统计出其中英文字母、空格、数字和其它字符的个数。
29 9
|
4月前
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。 提示:利用ord()函数来获得字符的 ASCIl。
83 1
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。
|
11月前
题目:分别统计字符串中大写字母和小写字母的个数。
题目:分别统计字符串中大写字母和小写字母的个数。
统计数字字符和空格
统计数字字符和空格
96 0
求字符串中大小写字母个数及其他符号个数!
求字符串中大小写字母个数及其他符号个数!
55 0
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
判断字符串首个字母是否大写,若大写,则输出该字符串中大写字母的个数 并打印。
141 0
|
机器学习/深度学习 CDN
编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按
编写程序统计从键盘输入的一行文本中各个字母的个数。 输入以回车键结束。 不区分大小写,大写字母与相应的小写字母按照同一个字母看待。 要求输出按照各个字母出现的个数从大到小进行排序,出现的个数相同的,按
358 0
有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
294 0