黑马程序员技术交流社区

标题: 小程序:解析一个字符串 出错求解 [打印本页]

作者: 张振纲    时间: 2012-8-29 14:00
标题: 小程序:解析一个字符串 出错求解
本帖最后由 张振纲 于 2012-8-29 14:06 编辑
  1. package Exercise;

  2. public class charTime {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 String s = "    sdjkfljasd    ";                                                     
  9.                 int times = 0;        //定义一个计数器
  10.                 int index = 0;
  11.                 char key ;
  12.                 for (int i = 0; i < s.length(); i++) {
  13.                         key = s.charAt(i);                                  <FONT color=red>获取字符串的第一个字符</FONT>
  14.                         while(s.indexOf(key)!=-1){                      <FONT color=red>然后以这个字符串中有无这个字符为条件循环</FONT><FONT color=red>
  15. </FONT>                                s=s.substring(s.indexOf(key)+1);             <FONT color=red>有就截取后面的字符串,继续查找
  16. </FONT>                                times++;                                                          <FONT color=red> 计数器递增
  17. </FONT>                        }
  18.                         System.out.println("'"+key+"'"+"="+times);
  19.                 }
  20.                
  21.         }

  22. }


  23. <FONT color=red>想让key依次获取字符串中的字符并且去作为key查找次数,怎么实现</FONT>
复制代码

作者: 于启会    时间: 2012-8-29 14:29
上面代码中key = s.charAt(i);然后进入while循环,在while循环中找到一个s的(s.indexOf(key)位置,就截取,一直到找不到该位置结束,这样s = "    sdjkfljasd    ",第一个是" ",最后一个也是" "所以s在进入while循环中就截取完了。while外层的for循环就只进一次。所以你的到的key是s的第一个元素" " times查找的次数是s字符串中" "的个数。
作者: 尤泽红    时间: 2012-8-29 14:49
public class test1 {
        public static void main(String[] args) {
                 String s = "    sdjkfljasd    ";                                                     

         int times = 0;        //定义一个计数器

         int index = 0;

         char key ;

         for (int i = 0; i < s.length(); i++) {

                 key = s.charAt(i);                      //  <FONT color=red>获取字符串的第一个字符</FONT>

                 while(s.indexOf(key)!=-1){               //  <FONT color=red>然后以这个字符串中有无这个字符为条件循环</FONT><FONT color=red></FONT>                             
                         s=s.substring(s.indexOf(key)+1);     //   <FONT color=red>有就截取后面的字符串,继续查找</FONT>            
                         times++;                           //  <FONT color=red> 计数器递增//</FONT>                     
                         }
           System.out.println("'"+key+"'"+"="+times);

         }

}
}
//输出结果:' '=8




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