8.3. Construindo uma String passo a passo

Relembre que as Strings são imutáveis, ou seja, não existem métodos que permitam modificar a sequência de carateres que compõe uma String.

Por isso, quando queremos construir uma String a pouco e pouco, começando com uma dada sequência de carateres e acrescentando, passo a passo, novos carateres, podemos optar por fazer algo do estilo:

A seguinte linha será escrita no standard output:

 

Mas esta não é a melhor forma de o fazer. Porquê?

Relembre que quando atribuímos um valor (objeto) a uma variável de tipo não primitivo, o conteúdo da variável não será o objeto propriamente dito mas uma referência para ele. O conteúdo da variável s após a execução da instrução

é representado por

Como consequência, a execução das instruções acima

De cada vez que concatenamos s com a String " blah" estamos na verdade a criar um novo objeto do tipo String, e é esse novo objeto que passa a ser referenciado por s.

Ver imagem abaixo; uma seta com um traço significa que a referência contida na variável s já não é aquela.

Para evitar construir todos aqueles objetos intermédios (que não serão usados de novo), usamos um objeto que é especialista em construção de Strings – um objeto do tipo StringBuilder.

 


 

Anterior: 8.2. Geração de valores aleatórios

Seguinte: 8.4. A classe StringBuilder