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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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


15 个回复

倒序浏览
哇!厉害!学习了
回复 使用道具 举报
都学到正则了,不算新手了,已经有一定水平了
回复 使用道具 举报
ZZBY 发表于 2015-9-14 00:33
都学到正则了,不算新手了,已经有一定水平了

集合看视频看的稀里糊涂 直接跳过了,随后在慢慢消化
回复 使用道具 举报

因为不太懂集合 就这么做了
回复 使用道具 举报
本帖最后由 放飞邹莺 于 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类型的字符串数组
回复 使用道具 举报
放飞邹莺 发表于 2015-9-14 01:26
public class A{      public static void main(String[] args){                  String str = "abcdekka ...

好多注释
回复 使用道具 举报
是啊,一行一行的解释的啊
回复 使用道具 举报

学完基础12天完全搞定了
回复 使用道具 举报
ZZBY 发表于 2015-9-14 00:33
都学到正则了,不算新手了,已经有一定水平了

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

// str = str.replaceAll("\\d+",""); 注释掉的话 会把数字也打印出来...
回复 使用道具 举报
哦,我错了,只是看了上面的,只看了你上面的输出格式,没有显示到数字那部分,你的输出结果没太注意看.
回复 使用道具 举报
\\d    实际上就是\d,正则里面是0-9
回复 使用道具 举报
完全不懂什么叫正则
回复 使用道具 举报
赞。。。。。。。。。。。。。
回复 使用道具 举报
插兜 发表于 2015-9-14 08:32
完全不懂什么叫正则

可以先去看下正则,再看上边 正则是单独部分,我就是这么干的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马