【华为OJ40】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
2016-10-07 00:00
375 查看
输入描述:输入一行字符串,可以有空格输出描述:统计其中英文字符,空格字符,数字字符,其他字符的个数输入例子:
1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][输出例子:
26 3 10 12
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(); } }[b]输入描述:[/b]输入一行字符串,可以有空格[b]输出描述:[/b]统计其中英文字符,空格字符,数字字符,其他字符的个数[b]输入例子:[/b]
1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][[b]输出例子:[/b]
26 3 10 12
相关文章推荐
- 华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为oj:输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 【华为 OJ】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
- 华为OJ题库-输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 【华为OJ】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为OJ 初级:输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为OJ试题:输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为oj 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- [华为OJ--C++]032-输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 【华为OJ】【032-输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数】
- [华为]输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 华为oj输入一行字符,分别统计出包含英文字母、空格、数字和其他字符的个数
- 华为机试: 计算字符串的相似度、输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数