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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一帆风顺 中级黑马   /  2012-12-14 11:17  /  1271 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王博 于 2012-12-14 17:51 编辑

/*
"asdfgzxcavasdfxavdf"获取该字符中字母出现的次数
希望打印结果a(1)b(2)...
*/
import java.util.*;
class  MapTest3
{
       public static void main(String[] args)
       {
              String s =charCount("asd==fgzxcavasdfxavdf");
              System.out.println(s);
              System.out.println("OVER!");
       }
       public static String charCount(String str)
       {
              char[] ch = str.toCharArray();
              TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
              int count=0;
              for (int i=0;i<ch.length ;i++ )
              {
                     if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))          //这里是什么意思啊??
                            continue;                                                                                  //continue是什么啊?毕老师说的太少了,不明白啊,求解答
                     Integer value = tm.get(ch);
                     if (value!=null)
                     {
                            count=value;
                     }
                     count++;
                     tm.put(ch,count);
                     count=0;
              }
              StringBuffer sb = new StringBuffer();
              Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
              Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
              while (it.hasNext())
              {
                     Map.Entry<Character,Integer> me = it.next();
                     Character chs=me.getKey();
                     Integer in=me.getValue();
                     sb.append(chs+"("+in+")  ");
              }
              //System.out.println(tm);
              return sb.toString();
       }
}

点评

break你懂吧?跳出当前循环。无论后面还要执行几次都跳出。continue是跳出本次循环,加入要执行三次,第二次continue,那么第三次还要继续执行  发表于 2012-12-14 11:45

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

3 个回复

倒序浏览
for (int i=0;i<ch.length ;i++ )//for循环体
              {

                     if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))          //因为要在sdfgzxcvasdfxcvdf"获取该字符串中的"字母"出现的次数。只有字母才满足条件
                            continue;                                                //continue是直接结束当前循环,进入下一个循环,作用:如果不是字母就不执行下面计算字母出现的次数的语句

                     Integer value = tm.get(ch);
                     if (value!=null)
                     {
                            count=value;
                     }
                     count++;
                     tm.put(ch,count);
                     count=0;
             }

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
String  s="";
for(int i=1;i<=5;i++){
   if(i==3||i==4)
continue;
s=s+i;
}
System.out.println(s);
你会发现s的输出少了3和4,它的作用就是在循环中继续循环,而不执行本次循环后的语句。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
                     if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))          //这里是什么意思啊??
                            continue;                                                                                  //continue是什么啊?毕老师说的太少了,不明白啊,求解答
我的理解:
continue:就是跳出本次循环的,继续下一次循环
如果执行到得内容是(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))  
那么程序就跳出本次循环,执行下一次循环!
希望能对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马