String é uma classe invariante. O uso da String para modificar uma string criará um novo objeto String. Se for modificado com frequência, muitos objetos de string serão gerados, o que é muito caro. Portanto, o Java fornece uma classe StringBuffer, que é muito mais eficiente que a string na modificação de seqüências de caracteres.
Existem 3 classes em Java responsáveis pelas operações de caracteres.
classe pública UsingStringBuffer { / *** Encontre string correspondente* / public static void testFindstr () {stringBuffer sb = new StringBuffer (); sb.append ("Este é um stringbuffer"); // Retorna a posição em que a substring aparece primeiro na sequência. Se não existir, retorne o número do número negativo.out.println ("sb.indexof (/" is/") =" + sb.indexOf ("is")); // Defina parâmetros para o método IndexOf e especifique o sistema de posição inicial correspondente.out.println ("sb.indexof (/" is/") =" + sb.indexOf ("is", 3)); // Retorna a última posição da substring na string. Se não existir, retorne o número negativo System.out.println ("sb.LastIndexOf (/" is/") =" + sb.lastindexof ("is")); // Defina parâmetros para o método LastIndexOf e especifique o sistema de posição final correspondente.out.println ("sb.LastIndexOf (/" is/", 1) =" + sb.LastIndexOF ("is", 1)); } / *** intercepte a string* / public static void testSubstr () {StringBuffer sb = new StringBuffer (); sb.append ("Este é um stringbuffer"); // A posição de terminação padrão é o final do String System.out.print ("sb.substring (4) =" + sb.substring (4)); // O método da substring intercepta a sequência, que pode especificar a posição inicial e a posição de terminação do sistema de interceptação.out.print ("sb.substring (4,9) =" + sb.substring (4, 9)); } / ** * Obtenha os caracteres em uma determinada posição na string * / public static void testcharatstr () {stringbuffer sb = new StringBuffer ("Este é um stringbuffer"); System.out.println (sb.charat (sb.length () - 1)); } / *** Adicione vários tipos de dados à cauda da string* / public static void testAppend () {StringBuffer sb = new StringBuffer ("Este é um StringBuffer!"); sb.append (1.23f); System.out.println (sb.toString ()); } / *** Exclua dados em string* / public static void testDelete () {StringBuffer sb = new StringBuffer ("Este é um StringBuffer!"); sb.delete (0, 5); sb.deleteCharat (sb.length () - 1); System.out.println (sb.toString ()); } / *** Insira vários tipos de dados em strings* / public static void testInsert () {stringbuffer sb = new StringBuffer ("Este é um StringBuffer!"); // pode inserir caracteres, matrizes de caracteres, cordas e vários números e valores booleanos nas posições especificadas sb.insert (2, 'w'); sb.insert (3, novo char [] {'a', 'b', 'c'}); sb.insert (8, "ABC"); sb.insert (2, 3); sb.insert (3, 2.3f); sb.insert (6, 3,75d); sb.insert (5, 9843L); sb.insert (2, verdadeiro); System.out.println ("testInsert:" + sb.toString ()); } / *** Substitua alguns caracteres em uma string* / public static void testreplace () {StringBuffer sb = new StringBuffer ("Este é um StringBuffer!"); // Substitua um determinado caractere em uma string por outra string sb.replace (10, sb.length (), "Inteiro"); System.out.println ("testRplace:" + sb.toString ()); } / *** string reversa* / public static void reverSetST () {StringBuffer sb = new StringBuffer ("Este é um StringBuffer!"); System.out.println (sb.versever ()); // O método reverso reverte a string}} resumo:
StringBuffer não é uma classe invariante. Ao modificar o conteúdo de uma string, nenhum novo objetivo é criado. Portanto, é mais adequado para modificar strings do que classes de cordas;
A classe StringBuffer não fornece o mesmo método toCharArray como string;
O método de substituição da classe StringBuffer é diferente do método de substituição da classe String. Seu método de substituição possui três parâmetros. O primeiro parâmetro especifica a posição inicial da substring substituída, o segundo parâmetro especifica a posição final da substring substituída e o terceiro parâmetro especifica a nova substring.
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.