黑马程序员技术交流社区

标题: 怎么计算一个字符串中,所有字母,汉字,数字,符号出现的次数? [打印本页]

作者: 樱花飘过    时间: 2015-8-22 22:53
标题: 怎么计算一个字符串中,所有字母,汉字,数字,符号出现的次数?
额不会,求大神解答下
作者: mmppp    时间: 2015-8-23 14:39
我知道的是计算一个字符串里面大写字母,小写字母,还有数字的出现次数.
在外面定义三个int类型的变量.把字符串使用toCharArray()方法抓换成字符数组,然后遍历这个字符数组
如果ch>'a' && ch<'z'说明这个字符是小写,那么,管理小写的那个变量就自加一一次.同理,大写字母就是
ch>'A' && ch<'Z' 数字就是大于字符的0,小于字符的9.至于中文的我就不知道了.因为不知道对应的AscII哈

作者: sven556677    时间: 2015-8-23 15:23
跟这视频里的案例自己做的一个,汉字和符号应该都差不多吧,都是GBK编码,占2字节。
  1. package com.cn.reviev;
  2. import java.util.*;
  3. /**
  4. * 获取字符串中字母的个数并输出
  5. * @author Administrator
  6. *
  7. */
  8. public class TreeSetSortString {
  9.         public static void main(String[] args) {
  10.                 String s="azxcAXCCxaea   rtsdfbb";
  11.                 countNum(s);
  12.         }
  13.         static void countNum(String s){
  14.                 char [] ch=s.toCharArray();//字符串转成数组
  15.                 Map<Character,Integer> st=new TreeMap<Character,Integer>();
  16.                 for(int i=0;i<ch.length;i++){
  17.                         if(!((ch[i]<='z'&&ch[i]>='a')||(ch[i]<='Z'&&ch[i]>='A'))) continue;
  18.                         int count=0;//计数器
  19.                         if(st.containsKey(ch[i])){//st中包含有元素就取出该值
  20.                                 count=st.get(ch[i]);
  21.                         }
  22.                         count++;//计数器加一
  23.                         st.put(ch[i],count);//存入
  24.                 }
  25.                 System.out.println(st);
  26.         }
  27. }
复制代码

作者: pengbeilin    时间: 2015-8-23 18:08
你的意思是每一个字符出现的次数把?
作者: heima_cy    时间: 2015-8-23 23:34
哈哈 人家给你解答的不错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2