描述 | 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
/**
|
知识点 | 字符串 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入一行字符串,可以有空格 |
输出 | 统计其中英文字符,空格字符,数字字符,其他字符的个数 |
样例输入 | 1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][ |
样例输出 | 26 3 10 12 |
import java.util.Scanner;
public class Main {
public static void main(String args[])
{
Scanner sca = new Scanner(System.in);
String str = sca.nextLine();
sca.close();
System.out.println(getEnglishCharCount(str));
System.out.println(getBlankCharCount(str));
System.out.println(getNumberCharCount(str));
System.out.println(getOtherCharCount(str));
}
/**
* 统计出英文字母字符的个数。
*
* @param str 需要输入的字符串
* @return 英文字母的个数
*/
public static int getEnglishCharCount(String str)
{
int[] count = new int[128];
int letterCount = 0;
for(int i = 0; i < str.length(); i++)
{
count[str.charAt(i)]++;
}
for(int i = 'a';i <= 'z';i++)
{
letterCount += count[i];
}
for(int i = 'A';i <= 'Z';i++)
{
letterCount += count[i];
}
return letterCount;
}
/**
* 统计出空格字符的个数。
*
* @param str 需要输入的字符串
* @return 空格的个数
*/
public static int getBlankCharCount(String str)
{
int[] count = new int[128];
int spaceCount = 0;
for(int i = 0; i < str.length(); i++)
{
count[str.charAt(i)]++;
}
spaceCount = count[' '];
return spaceCount;
}
/**
* 统计出数字字符的个数。
*
* @param str 需要输入的字符串
* @return 英文字母的个数
*/
public static int getNumberCharCount(String str)
{
int[] count = new int[128];
int numberCount = 0;
for(int i = 0; i < str.length(); i++)
{
count[str.charAt(i)]++;
}
for(int i = '0';i <= '9';i++)
{
numberCount += count[i];
}
return numberCount;
}
/**
* 统计出其它字符的个数。
*
* @param str 需要输入的字符串
* @return 英文字母的个数
*/
public static int getOtherCharCount(String str)
{
int[] count = new int[128];
int otherCount = 0;
for(int i = 0; i < str.length(); i++)
{
count[str.charAt(i)]++;
}
for(int i = 0; i < 128; i++)
{
if((i == ' ') || ((i >= '0') && (i <= '9')) || (((i >= 'a') && (i <= 'z'))||((i >= 'A') && (i <= 'Z'))))
{
continue;
}
otherCount += count[i];
}
return otherCount;
}
}