Java学习之StringBuffer和StringBuilder
2017-04-05 20:15
246 查看
StringBuffer和StringBuilder
一、StringBuffer:
线程安全的可变字符序列。
String和StringBuffer的区别?
A:String的内容不可变
B:StringBuffer的内容可变
StringBuffer和StringBuilder的区别?
A:StringBuffer 线程安全,效率低
B:StringBuilder 线程不安全,效率高
线程安全:(同步),效率低
线程不安全:(不同步),效率高
二、构造方法:
StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。
三、成员方法:
public int length():返回长度(字符数)。实际值
public int capacity():返回当前容量。 理论值
添加功能:添加元素,并返回本身的对象。
public StringBuffer append(String str):追加数据,在末尾添加
public StringBuffer insert(int offset,String str):插入数据,在指定位置添加
删除功能:
public StringBuffer deleteCharAt(int index):删除指定索引处的字符
public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右
替换功能:
public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据
反转功能:
public StringBuffer reverse()
截取功能:返回值类型是String类型,本身没有发生改变
public String substring(int start)
public String substring(int start,int end)
相互转换:
String --
StringBuffer
String s = "hello";
// 方式1
StringBuffer sb1 = new StringBuffer(s);
// 方式2
StringBuffer sb2 = new StringBuffer();
sb2.append(s);
StringBuffer -- String
StringBuffer sb = new StringBuffer("world");
//方式1
String s1 = sb.substring(0);
//方式2
String s2 = sb.toString();
//方式3
String s3 = new String(sb);
package com.edu_stringbuffer;
/**
* StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
* StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
* StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。
*
* 成员方法:
* public int length():返回长度(字符数)。实际值
* public int capacity():返回当前容量。 理论值
* 添加功能:添加元素,并返回本身的对象。
* A:public StringBuffer append(String str):追加数据,在末尾添加
* B:public StringBuffer insert(int offset,String str):插入数据,在指定位置添加
* 删除功能:
* public StringBuffer deleteCharAt(int index):删除指定索引处的字符
* public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右
* 替换功能:
* public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据
*
* 反转功能:
* public StringBuffer reverse()
* 截取功能:返回值类型是String类型,本身没有发生改变
* public String substring(int start)
* public String substring(int start,int end)
*
*/
public class Demo {
public static void main(String[] args) {
/* StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。*/
StringBuffer sbBuffer = new StringBuffer();
StringBuffer buffer = new StringBuffer("hello");
System.out.println(buffer.length());//5
System.out.println(sbBuffer.length());//0
System.err.println(sbBuffer.capacity());//16
/*添加功能:添加元素,并返回本身的对象。
A:public StringBuffer append(String str):追加数据,在末尾添加
B:public StringBuffer insert(int offset,String str):插入数据,在指定位置添加 */
StringBuffer buffer2 = new StringBuffer("hello");
System.out.println(buffer2.append("word"));//helloword
System.out.println(buffer2.insert(2, "lili"));//helililloword
/*删除功能:
public StringBuffer deleteCharAt(int index):删除指定索引处的字符
public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右*/
StringBuffer buffer3 = new StringBuffer("hello1");
System.out.println(buffer3.deleteCharAt(3));//helo1
System.out.println(buffer3.delete(2,4));//he1
/*替换功能:
public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据*/
StringBuffer buffer4 = new StringBuffer("hello");
System.out.println(buffer4.replace(1, 3, "jiang"));//hjianglo
/* 反转功能:
public StringBuffer reverse()*/
StringBuffer buffer5 = new StringBuffer("hello");
System.out.println(buffer5.reverse());//olleh
/* 截取功能:返回值类型是String类型,本身没有发生改变
public String substring(int start)
public String substring(int start,int end)*/
StringBuffer buffer6 = new StringBuffer("hello");
System.out.println(buffer6.substring(2));//llo
System.out.println(buffer6.substring(0, 3));//hel
}
}
一、StringBuffer:
线程安全的可变字符序列。
String和StringBuffer的区别?
A:String的内容不可变
B:StringBuffer的内容可变
StringBuffer和StringBuilder的区别?
A:StringBuffer 线程安全,效率低
B:StringBuilder 线程不安全,效率高
线程安全:(同步),效率低
线程不安全:(不同步),效率高
二、构造方法:
StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。
三、成员方法:
public int length():返回长度(字符数)。实际值
public int capacity():返回当前容量。 理论值
添加功能:添加元素,并返回本身的对象。
public StringBuffer append(String str):追加数据,在末尾添加
public StringBuffer insert(int offset,String str):插入数据,在指定位置添加
删除功能:
public StringBuffer deleteCharAt(int index):删除指定索引处的字符
public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右
替换功能:
public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据
反转功能:
public StringBuffer reverse()
截取功能:返回值类型是String类型,本身没有发生改变
public String substring(int start)
public String substring(int start,int end)
相互转换:
String --
StringBuffer
String s = "hello";
// 方式1
StringBuffer sb1 = new StringBuffer(s);
// 方式2
StringBuffer sb2 = new StringBuffer();
sb2.append(s);
StringBuffer -- String
StringBuffer sb = new StringBuffer("world");
//方式1
String s1 = sb.substring(0);
//方式2
String s2 = sb.toString();
//方式3
String s3 = new String(sb);
package com.edu_stringbuffer;
/**
* StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
* StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
* StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。
*
* 成员方法:
* public int length():返回长度(字符数)。实际值
* public int capacity():返回当前容量。 理论值
* 添加功能:添加元素,并返回本身的对象。
* A:public StringBuffer append(String str):追加数据,在末尾添加
* B:public StringBuffer insert(int offset,String str):插入数据,在指定位置添加
* 删除功能:
* public StringBuffer deleteCharAt(int index):删除指定索引处的字符
* public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右
* 替换功能:
* public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据
*
* 反转功能:
* public StringBuffer reverse()
* 截取功能:返回值类型是String类型,本身没有发生改变
* public String substring(int start)
* public String substring(int start,int end)
*
*/
public class Demo {
public static void main(String[] args) {
/* StringBuffer():构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(int capacity):构造一个其中不带字符的字符串缓冲区,其初始容量为 capacity个字符。
StringBuffer(String str):构造一个其中带字符的字符串缓冲区,其初始容量为??? 个字符。*/
StringBuffer sbBuffer = new StringBuffer();
StringBuffer buffer = new StringBuffer("hello");
System.out.println(buffer.length());//5
System.out.println(sbBuffer.length());//0
System.err.println(sbBuffer.capacity());//16
/*添加功能:添加元素,并返回本身的对象。
A:public StringBuffer append(String str):追加数据,在末尾添加
B:public StringBuffer insert(int offset,String str):插入数据,在指定位置添加 */
StringBuffer buffer2 = new StringBuffer("hello");
System.out.println(buffer2.append("word"));//helloword
System.out.println(buffer2.insert(2, "lili"));//helililloword
/*删除功能:
public StringBuffer deleteCharAt(int index):删除指定索引处的字符
public StringBuffer delete(int start,int end):删除从start开始到end结束的数据,包左不包右*/
StringBuffer buffer3 = new StringBuffer("hello1");
System.out.println(buffer3.deleteCharAt(3));//helo1
System.out.println(buffer3.delete(2,4));//he1
/*替换功能:
public StringBuffer replace(int start,int end,String str):用str替换从start到end的数据*/
StringBuffer buffer4 = new StringBuffer("hello");
System.out.println(buffer4.replace(1, 3, "jiang"));//hjianglo
/* 反转功能:
public StringBuffer reverse()*/
StringBuffer buffer5 = new StringBuffer("hello");
System.out.println(buffer5.reverse());//olleh
/* 截取功能:返回值类型是String类型,本身没有发生改变
public String substring(int start)
public String substring(int start,int end)*/
StringBuffer buffer6 = new StringBuffer("hello");
System.out.println(buffer6.substring(2));//llo
System.out.println(buffer6.substring(0, 3));//hel
}
}
相关文章推荐
- JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)
- Java学习资料-String、StringBuffer、StringBuilder
- 【幻化万千戏红尘】qianfengDay13-java基础学习:String ,StringBuilder,StringBuffer,Date,Calendar
- Java学习之StringBuffer 和 StringBuilder 类
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- Java学习--String、StringBuffer与StringBuilder
- 【Java学习笔记】Day 3 String及StringBuilder及StringBuffer 【待整理】
- java学习—探秘Java中的String、StringBuilder以及StringBuffer
- 【Java学习笔记】String、StringBuffer和StringBuilder
- java基础学习笔记之String、StringBuffer、StringBuilder
- 黑马程序员 Java学习总结之StringBuilder和StringBuffer
- 黑马程序员——java学习7(152-165)——String类和StringBuffer,StringBuilder
- Java学习(二):String、StringBuffer和StringBuilder
- 你不知道的Java学习笔记12--String、StringBuffer、StringBuilder比较
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- Java学习资料-StringBuilder与StringBuffer的区别
- java学习之旅56--数组_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析
- java学习之旅57、58--数组_StringBuilder和StringBuffer的使用_JDK源码分析内部机制、常用方法补充_常见面试题答法
- java学习笔记之String,StringBuilder和StringBuffer
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较