Características:
O comprimento é variável (a camada subjacente é na verdade uma nova matriz constante)
Vários tipos de dados podem ser operados diretamente
Finalmente, ele será transformado em uma corda através do método de toque
Pode modificar strings
Os threads são síncronos
Diferenças das matrizes:
StringBuffer: o comprimento é variável e pode armazenar diferentes tipos de dados
Array: o comprimento é imutável e apenas um tipo de dados pode ser armazenado
Função StringBuffer:
Armazenamento (Criar)
StringBuffer Append (): Adicione os dados especificados como um parâmetro ao final dos dados existentes (exceto para dados de byte e tipos curtos, existem outros tipos de dados, exceto dados sem dados)
StringBuffer Insert (índice, dados): você pode inserir dados no local do índice especificado
A cópia do código é a seguinte:
public static void method_add () {
StringBuffer sb = new StringBuffer ();
//sb.append("abc").append(True).append(5378);
// stringbuffer sb1 = sb.append (34563);
System.out.println ("sb == sb1:"+(sb == sb1)); // O resultado é verdadeiro SB e SB1 apontam para o mesmo objeto, que é chamado de teoria da bacia. Adicionado ao contêiner StringBuffer, ele ainda é o mesmo recipiente
// Adicione elementos no local especificado
// stringbuffer sb2 = sb1.
// SOP (sb2.toString ());
}
Excluir
O StringBuffer Exclete (Start, End) Exclua os dados no buffer, incluindo START, NÃO END.
StringBuffer DeleteCharat (Index) Exclua o personagem no local especificado
A cópia do código é a seguinte:
public static void method_del () {
StringBuffer sb = new StringBuffer ("huangjianfeng");
System.out.println (sb.toString ());
// Exclua uma certa parte
sb.delete (1,3);
System.out.println (sb.toString ());
// Exclua um elemento na string
sb.delete (2,3);
sb.deleteCharat (2);
System.out.println (sb.toString ());
// Limpe o buffer
// sb = novo stringbuffer // erro, esta é outra definição de um buffer sb apontando para um novo buffer
sb.Delete (0, sb.Length ());
System.out.println (sb.toString ());
}
Obtenha (leia)
A cópia do código é a seguinte:
Char Charat (índice int)
Int indexOf (String str)
int lastIndexOf (string str)
Int comprimento ()
String substring (int start, int end)
A cópia do código é a seguinte:
public static void method_read () {
StringBuffer sb = new StringBuffer ("javascript");
char ch = sb.charat (3);
int index1 = sb.indexof ("sc");
int index2 = sb.LastIndexOf ("sc");
int len = sb.length ();
String str = sb.substring (5,7);
sop ("ch ="+ch+", index1 ="+index1+", index2 ="+index2+", len ="+len+", str ="+str);
}
Modificar (atualização)
A cópia do código é a seguinte:
StringBuffer Substitua (Iniciar, End, String);
Void Setcharat (índice int, char CH);
A cópia do código é a seguinte:
public static void method_update () {
StringBuffer sb1 = new StringBuffer ("javascript");
Stringbuffer sb2 = sb1.replace (4,10, "ee");
System.out.println (sb2);
SB1.Setcharat (1, 'B');
System.out.println (sb1);
}
Outros métodos comumente usados:
Inverter stringbuffer reverse ();
Defina o comprimento do recipiente StringBuffer SetLength ();
Armazene os dados especificados no buffer na matriz de caracteres especificada void getchars (int srcbegin, int srcend, char [] dst, int dstbegin);
A cópia do código é a seguinte:
public static void métod_other () {
StringBuffer sb = new StringBuffer ();
// Defina o comprimento
sb.setLength (4);
System.out.println (sb.length ());
// Inverta a string
StringBuffer sb1 = new StringBuffer ("huangjianfeng");
sb1 = sb1.versever ();
System.out.println (sb1);
// armazenar os dados especificados no buffer na matriz de caracteres especificada
char [] arr = novo char [15];
Stringbuffer sb2 = new StringBuffer ("huangjianfeng");
sb2.getchars (0, 7, arr, 3);
para (char sbs: arr) {
System.out.print (SBS);
}
}
StringBuilder aparece após a versão JDK1.5
O StringBuilder é agnóstico, geralmente usado para um único encadeamento para melhorar a eficiência, o StringBuffer é simultâneo de rosca, geralmente usado para o desenvolvimento de vários thread, é recomendável usar o StringBuilder para melhorar a eficiência.
Atualize três fatores: melhorar a eficiência, simplificar a escrita e melhorar a segurança