问题同主题。

解决方案 »

  1.   

    indexOf和contains应该差不多,因为contains实际上就是调用的indexOf方法
    至于startsWith和上面两个实现的是不同的功能
      

  2.   

    我知道startwith实现的功能不同,只是要搜索的字符有时是在开端,所以同样的使用哪个?
    是不是其实都差不多?
      

  3.   

    indexOf的效率稍高一些.测试代码如下: public static void main(String[] args) {
    String str = "测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高";
    long start = System.nanoTime();
    int indexOf = str.indexOf("高");
    long end = System.nanoTime();
    System.out.println(end-start);
    start = System.nanoTime();
    str.contains("高");
    end = System.nanoTime();
    System.out.println(end-start);
    }
      

  4.   

    contains多一级方法调用,时间肯定长一点的,不过这个应该不会有多大的效率影响的吧
      

  5.   

    测试结果由高到低:startWith->indexOf->contains.测试代码如下 : public static void main(String[] args) {
    String str = "测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高测试一下哪个效率高";
    long start = System.nanoTime();
    int indexOf = str.indexOf("高");
    long end = System.nanoTime();
    System.out.println(end-start);
    start = System.nanoTime();
    str.contains("高");
    end = System.nanoTime();
    System.out.println(end-start);
    start = System.nanoTime();
    str.startsWith("高");
    end = System.nanoTime();
    System.out.println(end-start);
    }