Java String中若干问题

来源:互联网 发布:网络平台招商加盟 编辑:程序博客网 时间:2024/06/05 08:21

关于String的若干问题:

  • String中的“==”与equals() 方法:
    (1)对于String对象使用“==”判定时,其实是判定两个String对象是否为同一String对象的引用(内存地址是否相同);
    (2)equals()用于判定两个String对象的内容是否一致;
public class TestEquals {    static String str1=new String("abcde");    static String str2=new String("abcde");    static String str3="abcde";    static String str4="abcde";    public static void main(String[] args) {        System.out.print("str1==str2 ? ");        System.out.println(str1==str2);        System.out.println("str1.equals(str2) ? "+str1.equals(str2));           System.out.println("str1.equals(str3) ? "+str1.equals(str3));           System.out.print("str1==str3 ? ");        System.out.println(str1==str3);        System.out.print("str3==str4 ? ");        System.out.println(str3==str4);    }}

输出结果://str1==str2 ? false
//str1.equals(str2) ? true
//str1.equals(str3) ? true
//str1==str3 ? false
//str3==str4 ? true

  • String与char[]比较:
    (1)String 对象是不可变的,JDK中对于String对象内容修改的方法实质上是重新创建了一个全新的String对象,原始的String一旦创建直到GCC将其收回才会消失。
    (2)保存在char[]中的值是可以随时修改的,每次修改完之后之前的值将消失;
    因此,相对来说char[]比String保密性更好。

  • 取出String中的内容:

String str1=new String("abcde");String str2=new String("234");String str3=new String("2.0f");char[] strChar=str1.toCharArray();Int strInt=Integer.parseInt(str2);Float strFloat=Float.parseFloat(str3);
  • 字符串拆分:
String str4=new String("a,b,c,d;e");String[] strTemp=str4.split(",");for(String ss:strTemp)    System.out.print(ss+",");
  • String vs StringBuilder vs StringBuffer :
    (1) 上面已经提及,String是不可变的,而StringBuilder对象值是可变的,StringBuilder提供的insert(), replace(), subString(), append() 等用于操纵字符串内容;
    (2) 相比StringBuffer,StringBuilder是java SE5引入的,在此之前,一般使用StringBuffer;相比StringBuilder,StringBuffer是线程安全的,因此开销会大,更慢。

  • Apache Commons Lang包中的StringUtils:
    (1) repeat()实现字符串重复构造;
    (2) countMatches() 可以统计子串出现次数;

    int n = StringUtils.countMatches("11112222", "1");System.out.println(n);String strRep=StringUtils.repeat("String ,", 6);        System.out.println(strRep);
0 0
原创粉丝点击