统计字符串中英文字母、汉字、空格、数字及其他字符出现的字数
2015-11-27 09:02
621 查看
package com.aaron;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetCount {
public static void main(String[] args) throws IOException {
BufferedReader strin = new BufferedReader(new InputStreamReader(
System.in));
System.out.print("请输入一个字符串:");
String str = strin.readLine();
int result[] = getCharCount2(str);
System.out.println("空格的个数为:" + result[0]);
System.out.println("数字的个数为:" + result[1]);
System.out.println("汉字的个数为:" + result[2]);
System.out.println("字母的个数为:" + result[3]);
System.out.println("其他字符的个数为:" + result[4]);
// String s = getCharCount(str);
// System.out.println(s);
}
// 统计各种字符出现的次数
public static int[] getCharCount2(String str) {
int[] count = { 0, 0, 0, 0 , 0 };
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
if (Character.isWhitespace(chs[i])) {
count[0]++;
} else if (isNumeric(chs[i])) {
count[1]++;
} else if (isChinese(chs[i])) {
count[2]++;
} else if (isEnglish(chs[i])) {
count[3]++;
} else {
count[4]++;
}
}
return count;
}
//判断字符是不是英文字母
public static boolean isEnglish(char str){
Pattern pattern = Pattern.compile("^[a-zA-Z]+$");
return pattern.matcher(String.valueOf(str)).matches();
}
// 判断该字符是不是数字
public static boolean isNumeric(char str) {
Pattern pattern = Pattern.compile("[0-9]");
return pattern.matcher(String.valueOf(str)).matches();
}
// 判断字符是不是汉字
public static boolean isChinese(char str) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(str);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
}
return false;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class GetCount {
public static void main(String[] args) throws IOException {
BufferedReader strin = new BufferedReader(new InputStreamReader(
System.in));
System.out.print("请输入一个字符串:");
String str = strin.readLine();
int result[] = getCharCount2(str);
System.out.println("空格的个数为:" + result[0]);
System.out.println("数字的个数为:" + result[1]);
System.out.println("汉字的个数为:" + result[2]);
System.out.println("字母的个数为:" + result[3]);
System.out.println("其他字符的个数为:" + result[4]);
// String s = getCharCount(str);
// System.out.println(s);
}
// 统计各种字符出现的次数
public static int[] getCharCount2(String str) {
int[] count = { 0, 0, 0, 0 , 0 };
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
if (Character.isWhitespace(chs[i])) {
count[0]++;
} else if (isNumeric(chs[i])) {
count[1]++;
} else if (isChinese(chs[i])) {
count[2]++;
} else if (isEnglish(chs[i])) {
count[3]++;
} else {
count[4]++;
}
}
return count;
}
//判断字符是不是英文字母
public static boolean isEnglish(char str){
Pattern pattern = Pattern.compile("^[a-zA-Z]+$");
return pattern.matcher(String.valueOf(str)).matches();
}
// 判断该字符是不是数字
public static boolean isNumeric(char str) {
Pattern pattern = Pattern.compile("[0-9]");
return pattern.matcher(String.valueOf(str)).matches();
}
// 判断字符是不是汉字
public static boolean isChinese(char str) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(str);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
return true;
}
return false;
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- 数据库链接字符串查询网站