StringBuffer与StringBuilder

String、StringBuffer和StringBuilder的区别

String:是被final修饰的,它的长度是不可改变的,通过从concat()、replace()等方法改变并不能真正改变字符串,仅仅是改变了对象的引用而已。

StringBuffer:长度可以改变,它是线性安全的。

StringBuilder:长度可以改变,它是非线性安全的。它的运行速度比StringBuffer更快。

内置方法

  • append(String str): 在字符串末尾添加字符串
StringBuffer sBuffer = new StringBuffer("hello");
sBuffer.append(" World,");
sBuffer.append(" this is StringBuffer");
System.out.println(sBuffer);        //hello World, this is StringBuffer
  • reverse():将此字符串用其反转形式取代
StringBuffer sBuffer = new StringBuffer("你好世界");
sBuffer.reverse();
System.out.println(sBuffer);    //你好世界
  • delete(int satrt,int end):移除此序列的子字符串中的字符。
StringBuffer sBuffer = new StringBuffer("你好世界");
sBuffer.delete(2,4);
System.out.println(sBuffer);    //你好
  • insert(int offset,String str):将字符插入到该字符串指定索引之后。
StringBuffer sBuffer = new StringBuffer("你好世界");
sBuffer.insert(2," java ");
System.out.println(sBuffer);
  • replace(int start,int end,String str):使用给定的字符替换次序列中子字符串。
StringBuffer sBuffer = new StringBuffer("你好世界");
sBuffer.replace(2,4,"Java");
System.out.println(sBuffer);
  • capacity() 返回当前容量 
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.capacity());     //20
  • charAt(int index) 返回此序列中指定索引处的字符。 
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.charAt(2));  //世
  • getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  将字符从此序列复制到目标字符数组 dst 
StringBuffer sBuffer = new StringBuffer("你好世界");
char[] ch = new char[6];
sBuffer.getChars(2,4,ch,0);
System.out.println(ch);    //世界
System.out.println(ch[1]);    //世
  •  indexOf(String str) 返回指定字符的索引值
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.indexOf("好"));   //1
  • length()    返回字符串长度
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.length());   //
  • setCharAt(int index, char ch)   将给定索引处的字符设置为 ch 
StringBuffer sBuffer = new StringBuffer("ABCD");
sBuffer.setCharAt(2,'X');
System.out.println(sBuffer);    //ABXD
  • setLength(int newLength)  设置字符序列的长度。 
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.capacity()); //20
sBuffer.setLength(30);
System.out.println(sBuffer.capacity()); //42
  • subSequence(int start, int end)   返回一个新的字符序列,该字符序列是此序列的子序列。 
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.subSequence(2,4));    //世界
  • substring(int start)  截取指定索引处字符串 
StringBuffer sBuffer = new StringBuffer("你好世界");
System.out.println(sBuffer.substring(1));   //好世界
  • toString()    返回此序列中数据的字符串表示形式。 
StringBuffer sBuffer = new StringBuffer("你好世界");
//将StringBuffer对象转换成String
String str = sBuffer.toString();
System.out.println(str);  //你好世界

猜你喜欢

转载自blog.csdn.net/qq_40176258/article/details/86465582