StringBuffer和StringBuilder都是可变的字符序列
- StringBuffer线程安全,做线程同步检查,效率较低
- StringBuilder线程不安全,不做线程同步检查,效率较高,建议采用该类
常用方法列表
-
重载的public StringBuilderappend()方法
-
可以为该StringBuilder对象添加字符序列,仍然返回自身对象
-
方法 public StringBuilder delete(删除)(int start,int end)//从start位置删除到end
-
可以删除从start开始到end-1为止的一段字符序列,仍然返回自身对象
-
方法punlic StringBuilder deleteCharAt(int index)//删除指定所有位置的字符
-
移除此序列指定位置上的char,仍然返回自身对象。
-
重载的 public StringBuilder insert()方法,可以为该String Builder 对象在指定位置插入字符序列,仍然返回自身对象
-
方法public stringbuilder reverse()//reverse逆转
-
用于将字符序列逆序,仍然返回自身对象
-
方法 public string toString()返回此序列中数据的字符串表示形式
-
和 String 类含义类似的方法
public int indexOf(String str) public int indexOf(String str,int fromlndex) public String substring(int start) public String substring(int start,int end) public int length() cahr charAt(int index)
例:
package com.it.baizhan;
public class TestBufferAndBuilder {
public static void main(String[] args) {
/**StringBuilder*/
StringBuilder sb = new StringBuilder();
for (int i = 0;i < 7;i++){
sb.append((char) ('a'+i));//追加单个字符
}
System.out.println(sb.toString());//转换成String
sb.append(",i can sing my abc!"+1+2+3);//追加字符串
System.out.println(sb.toString());
sb.append("1").append("2").append("3");
System.out.println(sb.toString());
/**StringBuffer,下面的方法同样使用StringBuilder*/
StringBuilder sb2 = new StringBuilder("苏州高博");
sb2.insert(0,"爱").insert(0,"我");//插入字符串
System.out.println(sb2);
sb2.delete(0,2);//删除字符串
System.out.println(sb2);
sb2.deleteCharAt(0).deleteCharAt(0);//删除某个字符
System.out.println(sb2.charAt(0));//获取某个字符
System.out.println(sb2.reverse());//字符串逆序
}
}
**自定义包装类完善 **
自定义包装类练习:
例:
package com.it.baizhan;
import java.util.Arrays;
//自定义一个简单的包装类,(仅限于练习)
public class Test02 {
private final int value;
private static Test02[] cache;//缓存【-128~127】之间的数字
private static final int LOW = -128;
private static final int HIGH = 127;
static {
cache = new Test02[HIGH - LOW + 1];//256
for (int i = LOW; i <= HIGH; i++) {
cache[i - LOW] = new Test02(i);
}
System.out.println(Arrays.toString(cache));
}
private Test02(int value) {
this.value = value;
}
@Override
public String toString() {
return value + "";
}
public static Test02 valueOf(int value) {
if (value >= LOW && value <= HIGH) {
return cache[value - LOW];
}
return new Test02(value);
}
public int intValue(){
return value;
}
public static void main(String[] args) {
Test02 a = new Test02(10);
Test02 b = Test02.valueOf(100);
Test02 b2 = Test02.valueOf(100);
Test02 b3 = Test02.valueOf(1000);
Test02 b4 = Test02.valueOf(1000);
System.out.println(b == b2);
System.out.println(b3 == b4);
int c = b.intValue();
}
}