输入描述:
输入一行字符串,可以有空格
输出描述:
统计其中英文字符,空格字符,数字字符,其他字符的个数
输入例子:
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