从标准输入接受一行字符,分别统计该行字符中英文字母、其它字符的个数,并分别输出这些字符。
package doc_01.third;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
* 模块说明: 输入一行字符统计中英文字母个数,并输出
*
*/
public class CountChar {
private static int count[] = new int[3];
// private static StringBuffer[] sb = new StringBuffer[3];
private static StringBuffer chinese = new StringBuffer("中文字母:");
private static StringBuffer english = new StringBuffer("英文字母:");
private static StringBuffer other = new StringBuffer("其他字母:");
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String inputStr = br.readLine();
count(inputStr);
display();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void count(String inputStr) {
char[] temp = inputStr.toCharArray();
for (int i = 0; i < temp.length; i++) {
if (isChinese(temp[i])) {
chinese.append(temp[i] + " ");
count[0]++;
continue;
}
if (isEnglish(temp[i])) {
english.append(temp[i] + " ");
count[1]++;
continue;
}
other.append(temp[i] + " ");
count[2]++;
}
}
private static boolean isChinese(char c) {
Character.UnicodeScript sc = Character.UnicodeScript.of(c);
if (sc == Character.UnicodeScript.HAN) {
return true;
}
return false;
}
private static boolean isEnglish(char c) {
if ((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {
return true;
} else {
return false;
}
}
private static void display() {
System.out.println("中文字母个数:" + count[0]);
System.out.println(chinese);
System.out.println("英文字母个数:" + count[1]);
System.out.println(english);
System.out.println("其他字母个数:" + count[2]);
System.out.println(other);
}
}