黑马程序员技术交流社区

标题: 来看新手如何取出。。。一个字符串中的字母出现次数。 [打印本页]

作者: 1406046710    时间: 2015-9-13 23:48
标题: 来看新手如何取出。。。一个字符串中的字母出现次数。
本帖最后由 1406046710 于 2015-9-13 23:50 编辑

    取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq", 输出格式为:a(2)b(1)k(2)...
大家如何取~~我先来。。
            public class test1
{
        public static void main(String[] args){
               
                String str = "abcdekka27qoq";
                System.out.println("字符串:"+str);
                System.out.print("输出格式:");
                str = str.replaceAll("\\d+","");
                int start,end,num;
                char temp;
                while(!(str.isEmpty())){
                        temp=str.charAt(0);
                        start=str.length();
                        System.out.print(String.valueOf(temp));
                        str=str.replaceAll(String.valueOf(temp),"");
                        end=str.length();
                        num=start-end;
                        System.out.print("("+num+")");
                }               
        }               
}
输出结果:
字符串:abcdekka27qoq
输出格式:a(2)b(1)c(1)d(1)e(1)k(2)q(2)o(1



作者: outxf003    时间: 2015-9-14 00:22
哇!厉害!学习了
作者: ZZBY    时间: 2015-9-14 00:33
都学到正则了,不算新手了,已经有一定水平了
作者: 1406046710    时间: 2015-9-14 00:46
ZZBY 发表于 2015-9-14 00:33
都学到正则了,不算新手了,已经有一定水平了

集合看视频看的稀里糊涂 直接跳过了,随后在慢慢消化
作者: 1406046710    时间: 2015-9-14 00:47
outxf003 发表于 2015-9-14 00:22
哇!厉害!学习了

因为不太懂集合 就这么做了
作者: 放飞邹莺    时间: 2015-9-14 01:26
本帖最后由 放飞邹莺 于 2015-9-14 01:37 编辑

public class A{
    public static void main(String[] args){
        String str = "abcdekka27qoq";
        System.out.println("字符串:"+str);
        System.out.print("输出格式:");
        //多余的代码
       // str = str.replaceAll("\\d+","");
        int start,end,num;
        char temp;
       while(!(str.isEmpty())){
                //获取字符串中的第一个字符赋给temp,输出字符temp不换行
                temp=str.charAt(0);
                System.out.print(String.valueOf(temp));
                //获取字符串的长度赋给start
                start=str.length();
                //把字符串中的所有字符temp用""替换掉  
                str=str.replaceAll(String.valueOf(temp),"");
                //替换后字符串的长度
                end=str.length();
                //原字符串的长度减去替换后的长度就是删除的这个字符在字符串中的个数
                num=start-end;
               // 输出字符串个数
                System.out.print("("+num+")");
        }                              
}   
}
输出格式是一个StringBuffer类型的字符串数组

作者: 1406046710    时间: 2015-9-14 01:29
放飞邹莺 发表于 2015-9-14 01:26
public class A{      public static void main(String[] args){                  String str = "abcdekka ...

好多注释
作者: 放飞邹莺    时间: 2015-9-14 01:30
是啊,一行一行的解释的啊
作者: 放飞邹莺    时间: 2015-9-14 01:33
outxf003 发表于 2015-9-14 00:22
哇!厉害!学习了

学完基础12天完全搞定了
作者: 放飞邹莺    时间: 2015-9-14 01:36
ZZBY 发表于 2015-9-14 00:33
都学到正则了,不算新手了,已经有一定水平了

用replaceAll方法的时候看一下这则就知道个了,跟正则表达式么太多关系
作者: 1406046710    时间: 2015-9-14 01:37
放飞邹莺 发表于 2015-9-14 01:26
public class A{
    public static void main(String[] args){
        String str = "abcdekka27qoq";

// str = str.replaceAll("\\d+",""); 注释掉的话 会把数字也打印出来...
作者: 放飞邹莺    时间: 2015-9-14 01:55
哦,我错了,只是看了上面的,只看了你上面的输出格式,没有显示到数字那部分,你的输出结果没太注意看.
作者: 放飞邹莺    时间: 2015-9-14 01:57
\\d    实际上就是\d,正则里面是0-9
作者: 插兜    时间: 2015-9-14 08:32
完全不懂什么叫正则
作者: ln0491    时间: 2015-9-14 09:07
赞。。。。。。。。。。。。。
作者: 1406046710    时间: 2015-9-14 23:42
插兜 发表于 2015-9-14 08:32
完全不懂什么叫正则

可以先去看下正则,再看上边 正则是单独部分,我就是这么干的




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