Os objetos da string são imutáveis. Toda vez que você usa um dos métodos da classe System.String, você precisa criar um novo objeto String na memória, que requer alocar um novo espaço para o novo objeto. A sobrecarga do sistema associada à criação de um novo objeto String pode ser muito cara em situações em que as modificações repetidas devem ser executadas na sequência. Se você deseja modificar uma string sem criar um novo objeto, pode usar a classe System.Text.StringBuilder. Por exemplo, o uso da classe StringBuilder pode melhorar o desempenho ao concatenar muitas strings juntas em um loop.
Ao inicializar a variável com um método de construtor sobrecarregado, uma nova instância da classe Stringbuilder pode ser criada, conforme explicado no exemplo a seguir.
StringBuilder myStringBuilder = new StringBuilder ("Hello World!");(I) Defina capacidade e comprimento
Embora o objeto StringBuilder seja um objeto dinâmico que permita o número de caracteres na sequência que ele encapsula, você pode especificar um valor para o número máximo de caracteres que ele pode conter. Esse valor é chamado de capacidade do objeto e não deve ser confundido com o comprimento da string que o objeto StringBuilder atual mantém. Por exemplo, você pode criar uma nova instância da classe Stringbuilder com a string "Hello" (comprimento 5), enquanto especifica que a capacidade máxima do objeto é 25. Quando um StringBuilder é modificado, ele não realoca espaço para si até que a capacidade seja atingida. Quando a capacidade for alcançada, o novo espaço será alocado automaticamente e a capacidade será dobrada. Você pode usar um dos construtores sobrecarregados para especificar a capacidade da classe Stringbuilder. O exemplo de código a seguir especifica que o objeto MyStringBuilder pode ser expandido para um máximo de 25 espaços em branco.
StringBuilderMtringBuilder = new StringBuilder ("Hello World!", 25); Além disso, o comprimento máximo do objeto pode ser definido usando a propriedade de capacidade de leitura/gravação. O exemplo de código a seguir usa a propriedade Capacidade para definir o comprimento máximo de um objeto.
MyStringBuilder.Capacity = 25;
(Ii) Os seguintes lista vários métodos comuns desse tipo:
(1) O método APÊNDE pode ser usado para adicionar uma representação de string de um texto ou objeto ao final de uma sequência representada pelo objeto StringBuilder atual. O exemplo a seguir inicializa um objeto StringBuilder para "Hello World" e depois anexa algum texto ao final do objeto. O espaço será automaticamente alocado conforme necessário.
StringBuilderMtringBuilder = new StringBuilder ("Hello World!"); MyStringBuilder.append ("que dia lindo."); Console.WriteLine (MyStringBuilder);Este exemplo exibe Hello World! Que dia muito líquido. para o console.
(2) O método ApndendFormat adiciona texto ao final do StringBuilder e implementa a interface iformattable, para que possa aceitar as seqüências de formato padrão descritas na seção de formatação. Você pode usar esse método para personalizar o formato da variável e anexar esses valores à parte traseira do StringBuilder. O exemplo a seguir usa o método ApndendFormat para colocar um valor inteiro definido no formato do valor da moeda no final do StringBuilder.
int myint = 25; stringbuilder myStringBuilder = new StringBuilder ("Seu total é"); myStringBuilder.appendFormat ("{0: c}", myint); console.WriteLine (myStringBuilder);Este exemplo exibe o seu total é de US $ 25,00 no console.
(3) O método Insert adiciona uma string ou objeto à posição especificada no StringBuilder atual. O exemplo a seguir usa esse método para inserir uma palavra na sexta posição do Stringbuilder.
StringBuilderMtringBuilder = new StringBuilder ("Hello World!"); MyStringBuilder.insert (6, "Beautiful"); Console.WriteLine (MyStringBuilder);Este exemplo exibe Hello Beautifulworld! para o console.
(4) Você pode usar o método Remover para remover um número especificado de caracteres do StringBuilder atual, e o processo de remoção começa com o índice especificado a partir do zero. O exemplo a seguir usa o método Remover para reduzir o StringBuilder.
StringBuilderMtringBuilder = new StringBuilder ("Hello World!"); MyStringBuilder.remove (5,7); Console.WriteLine (MyStringBuilder);Este exemplo exibe olá ao console.
(5) Usando o método de substituição, você pode substituir os caracteres no objeto StringBuilder por outro caractere especificado. O exemplo a seguir usa o método de substituição para procurar objetos StringBuilder, encontrar todos os caracteres da marca de exclamação (!) E substituí -los por caracteres do ponto de interrogação (?).
StringBuilderMtringBuilder = new StringBuilder ("Hello World!"); MyStringBuilder.replace ('!', '?'); Console.WriteLine (MyStringBuilder);Este exemplo exibe Hello World? para o console
getSqlMapClientTemplate (). Queryforlist ((new StringBuilder ()). Append (entityclass.getName ()). Append (". Select"). ToString (), NULL);Classe de Stringbuilder de Java
Se o programa tiver uma necessidade frequente de seqüências adicionais, não será recomendável usar + para concatenação de strings. Você pode considerar o uso da classe java.lang.stringbuilder. Os objetos gerados usando esta classe terão um comprimento de 16 caracteres por padrão. Você também pode especificar o comprimento inicial sozinho. Se os caracteres anexados excederem o comprimento acomodado, o objeto StringBuilder aumentará automaticamente o comprimento para acomodar os caracteres anexados. Se houver necessidade de conectar strings com frequência, o uso da classe StringBuilder pode melhorar bastante a eficiência. O seguinte código:
Código Java
classe pública AppendStringTest {public static void main (string [] args) {string text = ""; long begintime = System.currenttimemillis (); for (int i = 0; i <10000; i ++) text = text+i; Long Endtime = System.CurrentTimemillis (); System.out.println ("Tempo de execução:" +(Endtime-BeGIntime)); Stringbuilder sb = new stringbuilder (""); BEGINTIME = System.currenttimemillis (); for (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currenttimemillis (); System.out.println ("Tempo de execução:" +(Endtime-BeGIntime)); }} classe pública AppendStringTest {public static void main (string [] args) {string text = ""; long begintime = System.currenttimemillis (); for (int i = 0; i <10000; i ++) text = text+i; Long Endtime = System.CurrentTimemillis (); System.out.println ("Tempo de execução:"+(Endtime-BeGIntime)); Stringbuilder sb = new stringbuilder (""); BEGINTIME = System.currenttimemillis (); for (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currenttimemillis (); System.out.println ("Tempo de execução:"+(Endtime-BeGIntime)); }}Este código sai:
Tempo de execução: 3188
Tempo de execução: 15
StringBuilder é uma nova classe que foi adicionada apenas ao J2SE1.5.0. Se a versão anterior tiver os mesmos requisitos, java.util.StringBuffer será usado. De fato, o StringBuilder foi projetado para ter a mesma interface operacional que o StringBuffer. O uso do StringBuilder em uma situação não-thread independente terá melhor eficiência porque o StringBuilder não lida com problemas de sincronização. StringBuffer lidará com problemas de sincronização. Se o StringBuilder for operado em vários threads, você deverá usar o StringBuffer para permitir que o objeto gerencie problemas de sincronização por si só.
A breve análise acima do uso do StringBuilder em Java é todo o conteúdo que compartilho com você. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.