计算字符串个数

计算字符个数

http://www.nowcoder.com/questionTerminal/a35ce98431874e3a820dbe4b2d0508b1

不知道这个方法常不常见,个人觉得还挺好的,大概思路是将待被比较的字符串统一转成大写后,转换成数组,利用Arrays的静态sort方法给字符串数组排序(排序的目的是可以避免遍历从而提高查找效率)。再将排好序的数组存入字符缓冲区。从待比较的字符在缓冲区里首次出现的位置开始计算以后还有几根跟他一样的,这样就不用遍历了。

import java.util.Arrays;
import java.util.Scanner;
public class Main{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext())
        {
        //接收带查找字符串,并统一转换成大写,排序后存入字符串缓冲区
        String s=sc.next();
        String sUp=s.toUpperCase();
        char[] charArray=sUp.toCharArray();
        Arrays.sort(charArray);//排序
        StringBuffer charArrayBuffer=new StringBuffer();//构建字符串缓冲区
        charArrayBuffer.append(charArray);
        //接受要比较的字符
        String sValue=sc.next();
        String sValueUp=sValue.toUpperCase();
        char value=sValueUp.charAt(0);
        String startValue="";
        startValue+=value;
        //判断查找
        int count=0;
        int flag=charArrayBuffer.indexOf(startValue);
        if(flag==-1)
            System.out.println(0);
        else
        {
            for(int start=charArrayBuffer.indexOf(startValue);start<charArrayBuffer.length();start++)
            {
                if(charArrayBuffer.charAt(start)==value)
                    count++;
                else
                    break;
            }
            System.out.println(count);
        }
        }
        sc.close();
    }
}
全部评论

相关推荐

01-24 08:13
已编辑
合肥工业大学 Java
程序员牛肉:没啥问题。标准的流水线简历,但是学历好一点,所以应该是有约面的机会的。 这段时间可以考虑把自己的两个项目彻底的理一理。争取能够讲清楚每一个功能点
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务