java字符串相关api及简单实现3

来源:互联网 发布:北京java培训费用 编辑:程序博客网 时间:2024/05/24 05:26

    工作一年有余了,最近有公司打电话邀请面试,抱着找打击和检验自己水平的心态应邀,面试之后发现自己的java基础知识方面的知识还是相当薄弱,平时copy久了,纸上写代码的能力严重下降,立此贴,总结一下java中最常使用的字符串操作,希望自己真正用得上的时候不至于连基本的知识都答不上。平时遇到这些简单基础的问题,往往从程序片段里面copy,或者搜索一下,脑袋日渐麻木。

    1.字符串反转。

    字符串反转有两种方式:

    a.使用java的api函数:

       

String reverse(String str){    return new StringBuffer(str).reverse().toString();}
    b.自己手写反转函数:

    

String reverse(String str){    char[] ch = str.toCharArray();    char[] tmpch = new char[ch.length];    int j = 0;    for(int i=ch.length -1 ;i>=0;i--){        tmpch[j++] = ch[i];    }  <pre name="code" class="java">   return new String(tmpch);<pre name="code" class="java">
}

    2.List,Set,Map的常见操作:

    有lista 和 listb,要求 lista并listb  和 lista交listb 的差集;

 List<Integer> lista = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(3); Set<Integer> set = new HashSet<Integer>(); set.add(0); set.add(4); set.add(2); Iterator it=set.iterator(); List list1 = new ArrayList(); list1.addAll(list); list1.addAll(set); List list2 = new ArrayList(); list2.addAll(list); list2.retainAll(set); list1.removeAll(list2);it = list1.iterator();while(it.hasNext()){System.out.println(it.next().toString());}

    3.String,StringBuffer,StringBuilder的区别?

    String 是final类型其值是不可以改变的,每次对String的改变其实都是生成了新的对象。

    StringBuffer值可以append和insert,每次改变都是在原对象上的改变,没有生成新的对象,StringBuffer是线程安全的。

    StringBuilder基本功能是StringBuffer一样,唯一的区别是StringBuilder是线程不同步的。

   效率排序 StringBuilder > StringBuffer > String


0 0