您的位置:首页 > 其它

【华为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐