Java String

来源:互联网 发布:cdn网络加速 编辑:程序博客网 时间:2024/05/21 05:41

String 是一个final 类,代表不可变的字符序列。底层使用char[ ]存放。

String 的内存解析:

public void test1(){String str1 = "JavaEE";String str2 = "JavaEE";String str3 = new String("JavaEE");String str4 = "JavaEE" + "Android";String str5 = "Android";String str6 = str1 + str5;str5 = str5 + "Handoop";String str7 = str6.intern();String str8 = "JavaEEAndroid";System.out.println(str1 == str2);//trueSystem.out.println(str1 == str3);//falseSystem.out.println(str1.equals(str3));//trueSystem.out.println(str4 == str6);//falseSystem.out.println(str4.equals(str6));//trueSystem.out.println(str7 == str4);//trueSystem.out.println(str4 == str8);//truePerson p1 = new Person("AA");Person p2 = new Person("AA");System.out.println("^_^"+ (p1.name == p2.name));//true}

所以,String s = new String("xyz");创建了2个String Object.

String 方法

字符串对象操作的方法:

public int length() public char charAt(int index)    // 返回在指定index位置的字符。public boolean equals(Object anObject)     //比较字符串是否相等。相等返回true。public int compareTo(String anotherString)     //从index = 0 开始比较,直到不等,返回不等时的差值public int indexOf(String s)           //返回s字符串在当前字符串中首次出现的位置。若没有,返回 -1.public int indexOf(String s ,int startpoint)      //返回s字符串从当前字符串startpoint 位置开始的,首次出现的位置public int lastIndexOf(String s)       //返回s字符串在当前字符串中最后一次出现的位置。若没有,返回 -1.public int lastIndexOf(String s ,int startpoint)public boolean startsWith(String prefix)      //判断当前字符串是否以prefix 开始public boolean endsWith(String suffix)        //判断当前字符串是否以suffix 结束public boolean regionMatches(int firstStart,String other,int otherStart ,int length) //判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字串是否equalspublic boolean contains(String s)         //判断当前字符串是否包含s字符串对象修改的方法:public String substring(int startpoint)public String substring(int start,int end) //返回从start开始到end结束的一个左闭右开的子串。start可以从0开始的。pubic String replace(char oldChar,char newChar) //将当前字符串出现的所有oldChar 都改为newChar。返回的是一个字符串。但当前的字符串不会改变。public String replaceAll(String old,String new) //类似上一个public String trim() //去除当前字符串中首尾出现的空格,若有多个,就去除多个。 字符串中间的空格不会去除。public String concat(String str) //连接当前字符串与str 但当前的字符串不会改变。public String[] split(String regex) //按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[]public Char[] toCharArray()  //

转换

1. 字符串 与基本数据类型、包装类之间转换

      ( 1). 字符串 --->基本数据类型、包装类:   调用相应的包装类的parseXxx(String str);     (2). 基本数据类型、包装类--->字符串:   调用字符串的重载的valueOf()方法

2. 字符串与字符数组间的转换

    (1). 字符串---->字符数组:调用字符串的toCharArray();

    (2). 字符数组---->字符串:调用字符串的构造器

3.  字符串与字节数组间的转换

    (1). 字符串---->字节数组:调用字符串的getBytes()

    (2). 字节数组---->字符串:调用字符串的构造器

StringBuffer

StringBuffer代表可变的字符序列,是一个容器。

StringBuffer类有三个构造方法:

    1.StringBuffer()初始容量为16的字符串缓冲区    2.StringBuffer(int size)构造指定容量的字符串缓冲区    3.StringBuffer(String str)将内容初始化为指定字符串内容

StringBuffer 方法

StringBuffer append(String s),   StringBuffer append(int n) ,   StringBuffer append(Object o) ,  StringBuffer append(char n), StringBuffer append(long n),  StringBuffer append(boolean n), StringBuffer insert(int index, String str)  public StringBuffer reverse() : 反转此StringBuffer StringBuffer delete(int startIndex, int endIndex)  public char charAt(int n ) public void setCharAt(int n ,char ch) StringBuffer replace( int startIndex ,int endIndex, String str)  public int indexOf(String str) public String substring(int start,int end) public int length() 总结:添加:append() 删除:delete(int i,int j) 修改:setCharAt(int index,char ch) 查 charAt(int n); 插入:insert(int index,String str)  反转:reverse() 长度:length()

StringBuilder类

String:不可变字符序列
StringBuffer:可变字符序列、效率低、线程安全
StringBuilder(JDK1.5):可变字符序列、效率高、线程不安全

效率从高到底: StringBuilde > StringBuffer > String


0 0
原创粉丝点击