0
点赞
收藏
分享

微信扫一扫

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


输入描述:


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




输出描述:


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



输入例子:


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();
}
}






输入描述:



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




输出描述:



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



输入例子:



1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][



输出例子:



26 3 10 12

举报

相关推荐

0 条评论