Bom dia pessoal,

Hoje vamos falar um pouco sobre uma das classes mais utilizadas no nosso dia-dia, a classe String. E complementaremos com duas classes que são utilizadas para facilitar o uso das Strings.

 

Assuntos

  • String
  • StringBuffer e StringBuilder

 

String

O que precisamos saber de String para a certificação?

  1. String é imutável, ou seja, uma vez atribuido um valor a uma String esse valor nunca poderá ser alterado.
  2. Ao criar uma nova String a JVM verifica no pool de String se já existe alguma igual e então faz com que sua nova String (variável de referência) aponte para o Objeto (memória) existente.
  3. Métodos:

charAt(); Retorna o caracter localizado no índice específico.

concat(); Anexa uma String ao final de outra.

equalsIgnoreCase(); Determina a igualdade de duas Strings, ignorando maiúsculas com minúsculas.

lenght(); Retorna o número de caracteres de uma String.

replace(); Substitui as ocorrências de um caracter por um outro caracter.

substring(); Retorna uma parte de uma String.

toLowerCase(); Retorna uma String em letras minúsculas.

toString(); Retorna o valor de uma String.

toUpperCase(); Retorna uma String em letras maiúsculas.

trim(); Remove os espaços em branco no início e no fim de uma String.

 

Vejamos alguns exemplos:

1. Métodos:

public static void main(String[] args) {

String s1 = “abcdef”;

System.out.println(s1);

 

char c = s1.charAt(3);

System.out.println(c);

 

s1 = s1.concat(“ghij”);

System.out.println(s1);

 

boolean equals = s1.equalsIgnoreCase(“ABCDEFGHIJ”);

System.out.println(equals);

 

int length = s1.length();

System.out.println(length);

 

String s2 = “XEGAX”.replace(‘X’, ‘L’);

System.out.println(s2);

 

System.out.println(s2.substring(2));

System.out.println(s2.substring(2, 4));

 

String s3 = “Java InTerEssAnte!”.toLowerCase();

System.out.println(s3);

 

String s4 = “Java InTerEssAnte!”.toUpperCase();

System.out.println(s4);

 

String s5 = ” 0123 456 “.trim();

System.out.println(s5);

}

 

2. String e a criação de Objetos

public static void main(String[] args) {

String a = “abcde”; // Cria 1º Objeto na memoria “abcde”

a.concat(“fghij”); // Cria o 2º “fghij” e o 3º “abcdefghij” Objeto na memoria

String b = “abcde”; // Nao cria um novo Objeto porque ja existe um Objeto “abcde” na memoria

}

 

3. Dica sobre concatenação com Strings

public static void main(String[] args) {

String a = “abcde”;

a = a + “fghij”; // O operador + adiciona a string posterior a string anterior “abcdefghij”

a.concat(“XX”); // Apenas a chamada ao metodo concat nao atribui o valor XX na variavel a

System.out.println(a);

a += “XX”; // Neste caso temos uma atribuicao, entao a variavel a recebera XX -> “abcdefghijXX”

System.out.println(a);

}

 

StringBuffer e StringBuilder

 

O que precisamos saber de StringBuffer e StringBuilder para a certificação?

  1. São utilizadas para minimizar o pool de Strings caso você precise manipular várias de suas caracteres. Como vimos anteriormente cada String é um objeto em memória.
  2. O StringBuffer pode ser manipulado repetidamente e não deixará Objetos Strings para trás.
  3. A diferença:

A classe StringBuffer tem seus métodos declarados como synchronized e por isso são ótimos para trabalhar com Threads, já a classe StringBuilder não tem seus métodos sincronizados com isso tem a vantagem de que pode ser mais rápida (mas não use essa classe para sistemas com muitas threads).

 

Iremos trabalhar mais com essas classes quando falaremos de Threads.

 

Veja um exemplo de StringBuffer

public static void main(String[] args) {

StringBuffer s1 = new StringBuffer(“abcde”);

s1.append(“fghij”);

System.out.println(s1);

 

StringBuffer s2 = new StringBuffer(“abcde”);

s2.reverse().append(“fghij”).insert(5, “<>”);

System.out.println(s2);

}

 

É isso ai pessoal, compartilhem, comentem e estudem!

 

Escrito por Marcos Oto Picarelli Prado