【Java】三种方式实现统计字符串中字母,数字,空格和其它类型的数量
2018-03-23 14:40
2767 查看
1、问题
统计一个字符串中的字母,数字,空格(含多种)和其它类型字符的数量;2、解答
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 三种方式实现统计字符串中的字符,数字,空格和其它字符个数 * */ public class CharCountStringTest { public static void main(String[] args) { String s= "123abc-\t\nd n"; //根据字符统计 getCharKindByChar(s); //根据ASCLL码统计 getCharKindByASCLLCode(s); //根据正则统计 getCharKindByRegex(); } //1、根据字符统计 private static void getCharKindByChar(String s){ int charCount=0,numberCout=0,blankCount=0,otherCount=0; for (int i=0;i<s.length();i++){ //英文字母 char temp=s.charAt(i); if (('a'<=temp&& temp<='z')||('A'<=temp&&temp<='Z')){ charCount++; //数字类型 }else if('0'<=temp&&temp<='9'){ numberCout++; //空格类型(不全) }else if(temp=='\t'||temp=='\n'||temp==' '){ blankCount++; //其它类型 }else { otherCount++; } } System.out.println("**********"); System.out.println("英文字母出现的次数:"+charCount); System.out.println("数字出现的次数:"+numberCout); System.out.println("空格字符出现的次数:"+blankCount); System.out.println("其它字符:"+otherCount); } //2、根据ASCLL码统计 private static void getCharKindByASCLLCode(String s){ int charCount=0,numberCout=0,blankCount=0,otherCount=0; for (int i=0;i<s.length();i++){ //英文字母 char temp=s.charAt(i); if ((65<=temp&& temp<=90)||(97<=temp&&temp<=122)){ charCount++; //数字类型 }else if(48<=temp&&temp<=57){ numberCout++; //空格类型 }else if(temp<=32){ blankCount++; //其它类型 }else { otherCount++; } } System.out.println("**********"); System.out.println("英文字母出现的次数:"+charCount); System.out.println("数字出现的次数:"+numberCout); System.out.println("空格字符出现的次数:"+blankCount); System.out.println("其它字符:"+otherCount); } //3、根据正则表达式匹配 private static void getCharKindByRegex(){ InputStreamReader inputStreamReader = new InputStreamReader(System.in); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); System.out.println("请输入字符串:"); String string=""; try { string=bufferedReader.readLine(); bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } Pattern letterPattern = Pattern.compile("[a-zA-Z]"); Pattern numberPattern = Pattern.compile("[0-9]"); Pattern blandPattern = Pattern.compile("[\\s|\r|\n|\t]");//不全 Matcher letterMatcher = letterPattern.matcher(string); Matcher numberMatcher = numberPattern.matcher(string); Matcher blandMatcher = blandPattern.matcher(string); StringBuffer stringBufferLetter = new StringBuffer(); StringBuffer stringBufferNumber = new StringBuffer(); StringBuffer stringBufferBlank = new StringBuffer(); while(letterMatcher.find()){ stringBufferLetter.append(letterMatcher.group(0)); } while(numberMatcher.find()){ stringBufferNumber.append(numberMatcher.group(0)); } while(blandMatcher.find()){ stringBufferBlank.append(blandMatcher.group(0)); } int otherNumber=string.length()-stringBufferLetter.length()-stringBufferNumber.length()-stringBufferBlank.length(); System.out.println("**********"); System.out.println("字母类型:"+ stringBufferLetter.length()+"个"); System.out.println("数字类型:"+ stringBufferNumber.length()+"个"); System.out.println("空格类型:"+ stringBufferBlank.length()+"个"); System.out.println("其它类型:"+ otherNumber+"个"); } }
相关文章推荐
- AS3实现经典算法(四) 统计字符串中数字、英文字母、空格和其它字符的个数
- java 每日习题(七)统计字符串中字母、空格、数字和其它字符的个数
- 【AS3实现经典算法统计字符串中数字、英文字母、空格和其它字符的个数】
- java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- java实现输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- Java 统计字符串里英文字母、空格、数字和其它字符的个数
- JAVA 统计字符串中的汉子,英文字母,数字的数量
- Java统计输入字符的英文字母、空格、数字和其它
- [Java]练习题007: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 用Java统计字符串中的字母、数字、空格和其他字符
- Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
- java小算法—输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- StChar.java 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- java:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- java 实现接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写
- (c++)编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
- 统计字符串中的字母,数字,空格和其它字符.
- 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。
- Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
- 五十道编程小题目 --- 07 统计出其中英文字母、空格、数字和其它字符的个数 java