- package day13;
- /*
- StringBuffer是字符串缓冲区。
-
- 是一个容器。
- 特点:
- 1,长度是可变化的。
- 2,可以字节操作多个数据类型。
- 3,最终会通过toString方法变成字符串。
-
- C create U update R read D delete
- 1,存储。
- StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
- StringBuffer insert(index,数据):可以将数据插入到指定index位置。
- 2,删除。
- StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
- StringBuffer deleteCharAt(index):删除指定位置的字符。
-
- 3,获取。
- char charAt(int index)
- int indexOf(String str)
- int lastIndexOf(String str)
- int length()
- String substring(int start, int end)
-
- 4,修改。
- StringBuffer replace(start,end,string);
- void setCharAt(int index, char ch) ;
-
-
- 5,反转。
- StringBuffer reverse();
- 6,
- 将缓冲区中指定数据存储到指定字符数组中。
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
-
- JDK1.5 版本之后出现了StringBuilder.
-
- StringBuffer是线程同步。 当多线程的时候就使用StringBuffer
-
- StringBuilder是线程不同步。 当是单线程的时候使用StringBuilder
-
- 以后开发,建议使用StringBuilder
-
- 升级三个因素:
- 1,提高效率。
- 2,简化书写。
- 3,提高安全性。
-
- */
- public class StringBufferDemo10 {
-
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- StringBuffer sb=new StringBuffer("abcdefjhe");
- //追加
- //sb.append(true);
-
- // 插入
- //sb.insert(3, "hello");
-
- // 删除
- //sb.delete(2, 3);
-
- // 删除指定位置上数据
- // sb.deleteCharAt(1);
- //System.out.println(sb.toString());
-
- //获取指定位置上的 字符
- //char c=sb.charAt(2);
-
- //获取指定字符的索引
- //int i=sb.indexOf("3");
- //System.out.println(i);
-
- //获取截取的子串
- //String str=sb.substring(3);
-
- // 替换 指定长度的字符串
- // StringBuffer sb1=sb.replace(1, 4, "12232425");
- //System.out.println(sb1);
-
- // 字符串的反转
- //StringBuffer sb2=sb.reverse();
- //System.out.println(sb2);
-
-
- /*将缓冲区中指定数据存储到指定字符数组中。
- void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) */
-
- char[] c=new char[sb.length()];
-
- sb.getChars(0, c.length, c, 0);
- for (int i = 0; i < c.length; i++) {
- System.out.println("c["+i+"]="+c[i]);
- }
- }
-
-
- }
|