Sobes.tech
Junior

Fale sobre a classe String na linguagem de programação que você conhece.

sobes.tech IA

Resposta da IA

No contexto do Java, String é uma classe imutável que representa uma sequência de caracteres. Os objetos String são criados, por exemplo, usando literais ou o operador new.

Características:

  • Imutabilidade: Após criar um objeto String, seu conteúdo não pode ser alterado. Qualquer operação que pareça modificar a string (por exemplo, concatenação) na verdade cria uma nova string. Isso garante segurança ao trabalhar com threads e tabelas hash.
  • Pool de strings: Para literais de strings, a JVM Java usa uma área de memória especial chamada pool de strings. Se uma string com o mesmo conteúdo já existir no pool, a JVM usa uma referência a esse objeto em vez de criar um novo. Isso otimiza o uso de memória.
  • Sobrecarga do operador +: O operador + para strings é usado para concatenação.
  • Muitos métodos úteis: A classe String fornece uma ampla gama de métodos para trabalhar com strings: obter comprimento (.length()), comparação (.equals(), .equalsIgnoreCase()), busca de substrings (.contains(), .indexOf()), extração de substrings (.substring()), substituição de caracteres (.replace()), conversão para maiúsculas/minúsculas (.toUpperCase(), .toLowerCase()), remoção de espaços (.trim()) e outros.

Exemplos:

Criação de strings:

// Criação usando literal - colocado no pool de strings
String s1 = "Hello";

// Criação usando new - cria um novo objeto fora do pool
String s2 = new String("World");

// Concatenação de strings
String s3 = s1 + " " + s2;

Exemplo de imutabilidade:

String original = "abc";
String modificado = original.concat("def"); // Cria uma nova string

// original ainda é "abc"
System.out.println(original); // Saída: abc
// modificado é uma nova string "abcdef"
System.out.println(modificado); // Saída: abcdef

Métodos importantes:

String text = "  Example String  ";

// Comprimento da string
int length = text.length(); // 18

// Comparação de strings
boolean isEqual = text.equals("  Example String  "); // true

// Comparação sem considerar maiúsculas/minúsculas
boolean isEqualIgnoreCase = text.equalsIgnoreCase("  example string  "); // true

// Busca de substring
boolean contains = text.contains("String"); // true
int index = text.indexOf("String"); // 10

// Extração de substring
String sub = text.substring(10, 16); // String

// Substituição de caracteres
String replaced = text.replace(" ", "-"); // --Example-String--

// Remoção de espaços nas extremidades
String trimmed = text.trim(); // Example String

String é amplamente utilizado em Java para representar informações textuais e é uma classe fundamental para o processamento de strings.