zoukankan      html  css  js  c++  java
  • 字符串中数字,字母,空格等的数量统计

    题目:输入一行字符,分别统计出其中英文字母,空格,数字和其他字符个数.
    分析:将字符串转为char数组,然遍历出每一个字符,进行判断统计.


    下面有两个方法实现,方法二采用正则表达式判断字符类型

    package com.math.forth;
    /***
     * 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符个数
     * 分析:将字符串转为char数组,然遍历出每一个字符,进行判断统计
     */
    import java.util.Scanner;
    
    public class Meth06 {
    
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入字符串:");
            String s=sc.nextLine();//这里不要用扫描器next()方法,关于这两个方法下面有介绍
            char[] a=s.toCharArray();
            method(a);
            System.out.println("------method2--------");
            method2(a);
        }
    
        public static void method(char[] a){
            int num1=0;
            int num2=0;
            int num3=0;
            int num4=0;
            for(int i=0;i<a.length;i++){
                if(a[i]==' '){
                    num1++;
                }else if('a'<=a[i]&&a[i]<='z'||'A'<=a[i]&&a[i]<='Z'){
                    num2++;
                }else if('0'<=a[i]&&a[i]<='9'){
                    num3++;
                }else{
                    num4++;
                }
            }
            System.out.println("空格有:"+num1+"个,字母有:"+num2+"个,数字有:"+num3+"个,其他符号有:"+num4+"个");
        }
    
        /***
         * 利用正则表达式
         * @param a
         */
        public static void method2(char[] a){
            int num1=0;
            int num2=0;
            int num3=0;
            int num4=0;
            for(int i=0;i<a.length;i++){
                //将char类型转为String类型,使用matches()方法
                String s=String.valueOf(a[i]);
                if(s.matches(" ")){//判断空格
                    num1++;
                }else if(s.matches("^[A-Za-z]+$")){//判断字母
                    num2++;
                }else if(s.matches("^[0-9]*$")){ //判断数字
                    num3++;
                }else{//其他字符
                    num4++;
                }
            }
            System.out.println("空格有:"+num1+"个,字母有:"+num2+"个,数字有:"+num3+"个,其他符号有:"+num4+"个");
        }
    }
    

    这里写图片描述



    关于Sacnner类的next()和nextLine()方法的区别:
    next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。既:next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串

    nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
    关于Scanner类中的这两个方法请转到http://blog.csdn.net/qq_36330228/article/details/78309638

  • 相关阅读:
    .net 加伪静态的方法
    前台调用后台事件的方法
    关于一个网站的源码问题
    div里面有ul li时 让高度自适应的方法
    用insert语句写入汉字变成问号的解决
    .net 4.0 ValidateRequest="false" 无效
    修复 VS2008 asp.net 设计视图 失效/工具选项[Html设计视图]出现"加载此属性页时出错" 方案
    绑定数据时,时间格式的转换
    IE下CSS属性float:right下移换行或不显示的问题原因及解决
    珍惜生命,远离培训 《如何选择好的培训机构》读后感 JavaEye技术网站
  • 原文地址:https://www.cnblogs.com/wangqilong/p/9417538.html
Copyright © 2011-2022 走看看