【华为OJ40】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

来源:互联网 发布:js单例模式用处 编辑:程序博客网 时间:2024/05/16 16:23


输入描述:

输入一行字符串,可以有空格



输出描述:

统计其中英文字符,空格字符,数字字符,其他字符的个数


输入例子:
1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][

输出例子:
2631012
import java.util.*;public class Main{    public static void main(String[] args){        Scanner sc = new Scanner(System.in);        while(sc.hasNext()){            String str = sc.nextLine();            System.out.println(getEnglishCharCount(str));             System.out.println(getBlankCharCount(str));             System.out.println(getNumberCharCount(str));             System.out.println(getOtherCharCount(str));        }        sc.close();    }           /**     * 统计出英文字母字符的个数。     *      * @param str 需要输入的字符串     * @return 英文字母的个数     */    public static int getEnglishCharCount(String str)    {        int numOfChars = 0;        for(int i=0;i<str.length();i++){            char c = str.charAt(i);            if((c<= 'z' && c>= 'a') || (c<= 'Z' && c>= 'A'))                numOfChars++;        }        return numOfChars;    }        /**     * 统计出空格字符的个数。     *      * @param str 需要输入的字符串     * @return 空格的个数     */    public static int getBlankCharCount(String str)    {                 int numOfSpace = 0;        for(int i=0;i<str.length();i++){            char c = str.charAt(i);            if(c == ' ')                numOfSpace++;        }        return numOfSpace;    }        /**     * 统计出数字字符的个数。     *      * @param str 需要输入的字符串     * @return 英文字母的个数     */    public static int getNumberCharCount(String str)    {        int nums = 0;        for(int i=0;i<str.length();i++){            char c = str.charAt(i);            int cNum = (int)c;            if(cNum <=9 && cNum >=0)                nums++;        }        return nums;    }        /**     * 统计出其它字符的个数。     *      * @param str 需要输入的字符串     * @return 英文字母的个数     */    public static int getOtherCharCount(String str)    {        int nums = 0;        for(int i=0;i<str.length();i++){            char c = str.charAt(i);          //  int cNum = (int)c;            if( !( (c<= 'z' && c>= 'a') || (c<= 'Z' && c>= 'A') || (c == ' ')    ))                nums++;        }        return nums;    }        }


被题目中的代码给迷惑了,自己的做法:
import java.util.*;public class Main{        public static void main(String[] args){        Scanner sc = new Scanner(System.in);        while(sc.hasNext()){            String str = sc.nextLine();            System.out.print(getCounts(str));        }        sc.close();    }        private static String getCounts(String str){        StringBuilder sb =  new StringBuilder(128);        int[] result = new int[4];                for(int i=0;i<str.length();i++){            char c = str.charAt(i);        if( (c<='z' && c>='a')||(c<='Z' && c>='A') ){                result[0]++;            }else if(c==' '){                result[1]++;            }else if(c<='9' && c>='0'){                result[2]++;            }else{                result[3]++;            }            }                for(Integer i:result){            sb.append(i).append('\n');        }                return sb.toString();    }}


输入描述:

输入一行字符串,可以有空格



输出描述:

统计其中英文字符,空格字符,数字字符,其他字符的个数


输入例子:
1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][

输出例子:
2631012
0 0
原创粉丝点击