A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© fmi110 高级黑马   /  2015-8-23 21:03  /  733 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

a
  1. package character;

  2. import java.util.Scanner;

  3. public class CharTest {

  4.         /**
  5.          * 键盘输入字符串,统计大小写个数,数字个数
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) {
  9.                 // TODO Auto-generated method stub
  10.                 charCount();
  11.         }
  12.         public static void charCount() {
  13.                 int bigCount = 0;
  14.                 int lowCount = 0;
  15.                 int digitalCount = 0;
  16.                 //获取键盘输入的字符串
  17.                 String str = new Scanner(System.in).nextLine();
  18.                 char arr[] = str.toCharArray();
  19.                 for (int i = 0; i < arr.length; i++) {
  20.                         if(Character.isDigit(arr[i]))
  21.                                 digitalCount++;
  22.                         else if(Character.isUpperCase(arr[i]))
  23.                                 bigCount++;
  24.                         else if(Character.isLowerCase(arr[i]))
  25.                                 lowCount++;
  26.                 }
  27.                 System.out.println("Upper Case:"+bigCount+"...Lower Case:"+lowCount+"...Digital:"+digitalCount);
  28.         }
  29. }
复制代码


16 个回复

倒序浏览
{:3_46:}新手小白,不明觉历!
回复 使用道具 举报

看见你的代码 , 我自己也写个试试  。
import java.util.Map;
import java.util.TreeMap;
/*
* 统计字符串“sdfvgzxcvasdvfxcvdf”中每个字符出现的次数,按次数排序并输出。
* 例如:a:1,g:1,z:1,c:2...
  */
public class MapAdvTest {
  public static void main(String[] args) {
  String str = "sdfvgzxcvasdvfxcvdf";
  String s = getCharCount(str);
  System.out.println(s);
}
public static String getCharCount(String str) {
  //1,将字符串变成字符数组
  char[] chs = str.toCharArray();
  
  //2,定义map集合用于存放字母和次数
  Map<Character,Integer> map = new TreeMap<Character,Integer>();
  
  //3,遍历字符数组,将遍历的字母和次数存放在map中
  for (int i = 0; i < chs.length; i++) {
   Integer value = map.get(chs);//这里是chs"["i"]",中括号不知打不出来,所以用引号扩了一下
   int count = 0 ;
   if(value!=null){
    count = value ;
   }
   count++;
   map.put(chs, count);//这里也跟上面一样
   
    }
  return mapToString(map);//将map集合转成字符串
}
public static String mapToString(Map<Character, Integer> map) {
  //定义一个容器,用于存放字符串
  StringBuilder sb = new StringBuilder();
  
  //遍历map集合
  for(Map.Entry<Character, Integer> me : map.entrySet()){
   Character key = me.getKey();
   Integer value = me.getValue();
   sb.append(key+":"+value+","); //这里怎么将最后一个字符串后面的逗号去掉
  }
  return sb.toString();
}
}
回复 使用道具 举报
zcywxb126 发表于 2015-8-23 21:12
看见你的代码 , 我自己也写个试试  。
import java.util.Map;
import java.util.TreeMap;

ha  你这是升级版本的
等我看到集合时  再来发一个
回复 使用道具 举报
fmi110 发表于 2015-8-23 21:54
ha  你这是升级版本的
等我看到集合时  再来发一个

那就等你的代码咯 , 对了 你准备报黑马的哪一期? 
回复 使用道具 举报
zcywxb126 发表于 2015-8-23 21:56
那就等你的代码咯 , 对了 你准备报黑马的哪一期? 

没开始走流程呢
我打算九月份去深圳报名的
你打算在哪个校区学习?
回复 使用道具 举报
fmi110 发表于 2015-8-25 23:08
没开始走流程呢
我打算九月份去深圳报名的
你打算在哪个校区学习?

我啊 , 北京吧
回复 使用道具 举报
zcywxb126 发表于 2015-8-23 21:12
看见你的代码 , 我自己也写个试试  。
import java.util.Map;
import java.util.TreeMap;

这是我的最新版  啊哈
  1. /**
  2. * 需求:统计输入的字符串,如 "abcaab"  以a(3)b(2)c(1)的形式输出
  3. * 分析:        1 字符与字符个数属于对应关系,可用Map<String,Integer>
  4. *                         2 输出字母是自然排序,所以考虑使用TreeMap
  5. */
  6. package fmi1;

  7. import java.util.Scanner;
  8. import java.util.Set;
  9. import java.util.TreeMap;

  10. public class CharacterCount {

  11.         public static void main(String[] args) {
  12.                 // TODO Auto-generated method stub
  13.                 //建立接收键盘输入的字符串
  14.                 System.out.println("请输入字符串:");
  15.                 String line = new Scanner(System.in).nextLine();
  16.                 //建立集合Map
  17.                 TreeMap<Character, Integer> tm = new TreeMap<Character,Integer>();
  18.                 //将输入字符串转成数组
  19.                 char[] chs = line.toCharArray();
  20.                 //遍历字符串,将字符存入集合Map,若字符key已存在,则value加1,否则,value = 1
  21.                 for(char ch:chs        ){
  22.                         //根据键获取集合的值,判断字符的个数
  23.                         Integer value = tm.get(ch);
  24.                         if(null == value){//没有对应键值对
  25.                                 value = 1;
  26.                         }
  27.                         else
  28.                                 value++;
  29.                         //将更新后的键值关系存至Map
  30.                         tm.put(ch, value);
  31.                 }
  32.                 //遍历Map,输出键值对
  33.                 StringBuilder sb = new StringBuilder("");
  34.                 Set<Character> s = tm.keySet();
  35.                 for(Character ch:s){
  36.                         sb.append(ch).append("(").append(tm.get(ch)).append(")");
  37.                 }
  38.                 System.out.println(sb.toString());
  39.         }
  40. }
复制代码
回复 使用道具 举报
en  你准备上那期班?
回复 使用道具 举报
zcywxb126 发表于 2015-9-7 21:55
en  你准备上那期班?

有可能十月吧,可能会从基础班走起
回复 使用道具 举报
fmi110 发表于 2015-9-7 23:56
有可能十月吧,可能会从基础班走起

不是吧, 我感觉你基础还行啊
还从基础班开始 搞的心慌慌啊 。
回复 使用道具 举报
zcywxb126 发表于 2015-9-8 15:34
不是吧, 我感觉你基础还行啊
还从基础班开始 搞的心慌慌啊 。

你参加培训了吗?
我只是想一个月时间也不算太长,而且java刚学两个月
犹豫要不要利用基础时间看看更多关于java的东西,就业班学项目的话可能没时间看其他的 了
你怎么看啊?
回复 使用道具 举报
fmi110 发表于 2015-9-8 16:02
你参加培训了吗?
我只是想一个月时间也不算太长,而且java刚学两个月
犹豫要不要利用基础时间看看更多关 ...

这个每个人的情况可能不同吧  , 不过基础打得牢固的话 , 对后面学习安卓或者 EE 很有好处的。
这个可以报班。
回复 使用道具 举报
fmi110 发表于 2015-9-8 16:02
你参加培训了吗?
我只是想一个月时间也不算太长,而且java刚学两个月
犹豫要不要利用基础时间看看更多关 ...

咱两是 好友了
以后就不要在这个帖子上给我留言了 , 直接发消息给我 。
回复 使用道具 举报
有点看不懂,拿去运行看看{:2_43:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马