String
Java String
Vamos nos aprofundar no assunto sobre Java String. Venha comigo mergulhar no tema e descobrir suas peculiaridades, seus diferentes métodos e detalhar sobre o uso dos mais importantes.
O que é uma String?
Em Java, uma String (como quase tudo em Java) é basicamente um object que representa um array de caracteres (char's). Um array de caracteres funciona da mesma forma que uma String em Java. Por exemplo:
char[] ch = {'i', 'z', 'a', ' ', 't', 'e', 'c'};
String str = new String(str);
É o mesmo que:
String str = "iza tec";
A classe java.lang.String implementa as interfaces Serializable, Comparable e CharSequence

Interface CharSequence
As classes String, StringBuffer e StringBuilder implementão a interface CharSequence que é usada para representar uma sequência de caracteres. Em outras palavras podemos usar essas três classes para criar Strings em Java.

Como criar um objeto Java String?
A classe java.lang.String é usada para criar um objeto do tipo String.
Há duas maneiras de criar um objeto String:
- Por String literal
- Por uma nova palavra-chave
1 - String literal
Java String literal é criada usando aspas duplas (""), por exemplo:
String s = "IzaTec";

No exemplo acima, apenas um objeto será criado. Primeiramente, a JVM não encontrará nenhum objeto String com o valor "IzaTec" no local de memória específico, e por isso irá criar um novo objeto. Depois disso, irá encontrar a string com o valor "IzaTec" na memória, o que fará com que não seja criado um novo objeto, mas retornará a referência da mesma instância.
2 - Por meio de novas palavra-chave
String s = new String("IzaTec"); // cria dois objetos e uma referência à variavel
Nesse caso, a JVM criará um novo objeto String na memória heap normal (fora do pool) e o literal "IzaTec" será colocado na "string constant pool". A variável s referenciará o objeto na heap (fora do pool).
Exemplo Java String
pubic class Exemplo{
public static void main(String args[]){
String s1 = "izaTec"; // cria uma string usando literal
char ch[] = {'i','z','a'};
String s2 = new String(ch); // converte array de char's em string
String s3 = new String("IzaTec"); // cria string java por palavra-chave
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
Saída:
izaTec
iza
IzaTec
Métodos de instância
toLowerCase()
O que é e como funciona
Como vimos antes no artigo sobre O que é String. A classe String em Java fornece uma vasta gama de métodos para manipulação de cadeias de caracteres. Um dos métodos mais utilizados é o toLowerCase(), que é usado para converter todos os caracteres de uma string para letras minúsculas. Este artigo explora o funcionamento deste método, sua utilização e as considerações que devem ser feitas ao usá-lo.
O que é o método toLowerCase()
O método toLowerCase() é um método da classe String que retorna uma nova string com todos os caracteres convertidos para minúsculas. Este método é útil quando se deseja realizar comparações de strings sem levar em consideração a diferença entre maiúsculas e minúsculas, ou quando se precisa padronizar o formato dos dados de entrada.
Sintaxe
Existem duas variantes do método toLowerCase():
1 - public String toLowerCase()
2 - public String toLowerCase(Locale locale)
Como funciona
O método toLowerCase() percorre cada caractere da string original e, se o caractere for uma letra maiúscula, ele converte para a letra minúscula correspondente. Os caracteres que não são letras (como números e sinais de pontuação) permanecem inalterados.
Uso com Locale
Para conversões específicas de configurações regionais, pode-se usar a segunda variante do método toLowerCase(Locale locale). Isso é importante em idiomas onde a transformação de maiúsculas para minúsculas pode variar.
public class Main {
public static void main(String[] args) {
String original = "IZA TEC";
String lowerCase = original.toLowerCase();
System.out.println(lowerCase); // Saída: iza tec
}
}
Considerações importantes
- Imutabilidade das Strings: Em Java, as strings são imutáveis, ou seja, qualquer método que aparentemente modifica uma string na verdade retorna uma nova string. Portanto, toLowerCase() não altera a string original, mas retorna uma nova string com as alterações.
- Performance: Se for necessário converter uma string para minúsculas múltiplas vezes, considere armazenar o resultado da conversão para evitar chamadas repetitivas ao método.
- Internacionalização: Ao trabalhar com aplicações que precisam suportar múltiplos idiomas, é essencial utilizar a variante de toLowerCase() que aceita um Locale para garantir que a conversão seja feita corretamente conforme as regras de cada idioma.
toUperrCase()
toUpperCase()
assim como o método toLowerCase()
é um método da classe String em Java que retorna uma nova string, porém, com todos os caracteres convertidos para maiúsculas, de acordo com as regras de capitalização do idioma em uso. Importante lembrar que este método não altera a string original; ele apenas cria uma nova string com a alteração aplicada.
Assinatura do método
Como também no método toLowerCase()
, aqui também temos duas variações do método:
- String toUpperCase(): Converte a string para maiúsculas usando as configurações de localidade padrão do sistema (geralmente com base na localidade configurada para a JVM).
- String toUpperCase(Locale locale): Converte a string para maiúsculas de acordo com uma localidade específica, o que pode ser útil em cenários multilinguísticos.
Como funciona?
A forma como funciona é a mesma do toLowerCase()
, assim que é chamado, ele percorre todos os caracteres da string e converte os que estão em minúsculo para maiúsculo.
Exemplo de uso
public class ExemploToUpperCase {
public static void main(String[] args) {
// Exemplo simples de conversão para maiúsculas
String original = "Iza tec!";
String maiusculas = original.toUpperCase();
// Exibindo o resultado
System.out.println("Original: " + original);
System.out.println("Maiúsculas: " + maiusculas);
}
}
Exemplo com Localidade
import java.util.Locale;
public class ExemploToUpperCaseComLocalidade {
public static void main(String[] args) {
// Exemplo de conversão com localidade turca
String texto = "istanbul";
String maiusculasTurco = texto.toUpperCase(new Locale("tr", "TR"));
System.out.println("Maiúsculas com localidade turca: " + maiusculasTurco);
}
}
Características importantes do método toUpperCase()
- Imutabilidade das Strings: Como todas as strings em Java são imutáveis, o método toUpperCase() não altera a string original, mas retorna uma nova string com os caracteres modificados.
- Sensível à Localidade: O método toUpperCase(Locale locale) permite que você converta as letras para maiúsculas de acordo com as regras linguísticas específicas de uma determinada localidade.
- Desempenho: Embora o método seja eficiente para conversões simples de letras, o desempenho pode ser afetado se for chamado repetidamente em grandes volumes de dados ou dentro de loops. Portanto, é recomendado usá-lo com cuidado em cenários de alto desempenho.
Quando usar toUpperCase()?
Você pode usar o método toUpperCase()
em várias situações, como:
- Validações: Para garantir que a entrada de dados esteja em maiúsculas (por exemplo, para códigos de identificação ou placas de veículos).
- Padronização de Textos: Ao exibir dados uniformes em uma interface de usuário, como títulos ou cabeçalhos que devem estar em maiúsculas.
- Comparações de String: Em algumas situações, você pode precisar comparar strings sem levar em consideração a diferença entre maiúsculas e minúsculas. Convertendo ambas as strings para maiúsculas antes da comparação, você pode fazer isso de maneira mais eficiente.
trim()
O método trim()
da classe String em Java retorna uma nova string, removendo os espaços em branco do início e do fim da string original. Espaços em branco incluem espaços, tabulações (\t), e outros caracteres de espaço que possam estar presentes no começo ou no fim da string.
Assinatura do método
A assinatura do método trim()
é bastante simples:
public String trim()
Como funciona?
Quando o método trim()
é chamado, ele percorre a string original desde o início até encontrar o primeiro caractere que não seja um espaço em branco, e então faz o mesmo do final para o começo. O conteúdo entre esses dois pontos (início e fim) é retornado como uma nova string. Se a string original não tiver espaços em branco no início ou no fim, o método retornará a própria string original.
Exemplo de uso
public class ExemploTrim {
public static void main(String[] args) {
// Exemplo simples de trim
String original = " Iza Tec ";
String semEspacos = original.trim();
// Exibindo o resultado
System.out.println("Original: '" + original + "'");
System.out.println("Sem espaços: '" + semEspacos + "'");
}
}
trim()
é chamado, esses espaços são removidos, resultando em uma string sem os espaços extras.Características importantes do método trim()
- Imutabilidade das Strings: Assim como outros métodos da classe String,
trim()
não altera a string original, mas retorna uma nova string com os espaços em branco removidos. - Não remove espaços internos:
trim()
só remove espaços em branco no início e no final da string. Espaços ou outros caracteres de espaço que estejam no meio da string permanecem inalterados. - Simplicidade:
trim()
é uma maneira rápida e eficiente de limpar uma string de espaços indesejados, especialmente útil em entradas de usuário.
Quando usar trim()?
Você pode usar o método trim()
em várias situações, como:
- Validação de Entrada de Dados: Para garantir que entradas de usuários não contenham espaços extras que poderiam invalidar a entrada ou causar comportamentos inesperados.
- Comparações de String: Antes de comparar strings, pode ser útil remover espaços em branco, especialmente se as strings foram coletadas de fontes diferentes ou através de entrada de usuário.
- Preparação de Dados: Ao manipular strings que serão usadas para busca, comparação ou exibição, remover espaços em branco desnecessários pode ajudar a evitar problemas de formatação.
Exemplo prático
Imagine que você esteja desenvolvendo um formulário de login onde os usuários inserem seus nomes de usuário e senhas. Se um usuário acidentalmente incluir espaços extras no início ou no fim de sua entrada, isso pode causar erros na autenticação. Usando trim()
, você pode limpar essas entradas antes de processá-las:
import java.util.Scanner;
public class LoginExemplo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Entrada do usuário
System.out.print("Digite seu nome de usuário: ");
String usuario = scanner.nextLine().trim();
System.out.print("Digite sua senha: ");
String senha = scanner.nextLine().trim();
// Validação simplificada
if (usuario.equals("admin") && senha.equals("12345")) {
System.out.println("Login bem-sucedido!");
} else {
System.out.println("Nome de usuário ou senha incorretos.");
}
}
}
equals()
O método equals()
em Java é usado para comparar dois objetos para verificar se eles são "igualmente" significativos. Isso significa que ele verifica se o conteúdo ou o estado de dois objetos é equivalente. No caso de strings, o método equals()
compara o conteúdo de duas strings, verificando se são exatamente iguais, incluindo maiúsculas e minúsculas.
O que é o método equals()?
O método equals()
é um método de instância definido na classe Object
, que é a superclasse de todas as classes em Java. Esse método é frequentemente sobrescrito em subclasses (como na classe String
) para fornecer uma comparação de igualdade adequada ao tipo de dado específico.
Assinatura do método
A assinatura do método equals()
na classe Object
é:
public boolean equals(Object obj)
Como funciona?
Quando você chama equals() em um objeto, ele compara o objeto atual com o objeto passado como argumento. No caso da classe String, o método equals() foi sobrescrito para comparar o conteúdo das strings, caracter por caracter
Exemplo básico:
public class ExemploEquals {
public static void main(String[] args) {
String string1 = "Iza";
String string2 = "Iza";
String string3 = "iza";
System.out.println(string1.equals(string2)); // true
System.out.println(string1.equals(string3)); // false
}
}
string1.equals(string2)
retorna true
porque ambas as strings contêm o mesmo conteúdo ("Iza"). No entanto, string1.equals(string3)
retorna false
porque "Iza" e "iza" diferem em maiúsculas e minúsculas.Diferença entre equals()
e ==
É importante não confundir o método equals()
com o operador ==
. Eles têm funções diferentes:
equals()
: Compara o conteúdo de dois objetos para determinar se eles são logicamente iguais.==
: Compara as referências de memória de dois objetos para verificar se eles apontam para o mesmo lugar na memória (ou seja, se são o mesmo objeto).
Exemplo:
String a = new String("Iza");
String b = new String("Iza");
System.out.println(a.equals(b)); // true, porque o conteúdo é igual
System.out.println(a == b); // false, porque são objetos diferentes na memória
a.equals(b)
retorna true
porque o conteúdo de a
e b
é o mesmo, mas a == b
retorna false porque a
e b
são objetos diferentes, mesmo que contenham os mesmos dados.Quando usar equals()?
- Comparar Strings: Para verificar se duas strings têm o mesmo conteúdo, independentemente de serem ou não o mesmo objeto.
- Comparar Objetos Personalizados: Para determinar se dois objetos de uma classe personalizada são "igualmente" significativos em termos de seus dados internos.
equalsIgnoreCase()
O método equalsIgnoreCase()
em Java é um método da classe String
que compara duas strings para verificar se são iguais, ignorando diferenças entre maiúsculas e minúsculas. Ele é particularmente útil quando você quer comparar duas strings sem considerar a capitalização das letras.
Assinatura do método
A assinatura do método equalsIgnoreCase()
é a seguinte:
public boolean equalsIgnoreCase(String anotherString)
true
se as duas strings forem iguais, ignorando a diferença entre maiúsculas e minúsculas, e false
caso contrário.Como funciona?
Quando você chama equalsIgnoreCase()
em uma string, ele compara o conteúdo dessa string com o conteúdo da string passada como argumento. A comparação é feita de forma que as diferenças entre maiúsculas e minúsculas são ignoradas. Isso significa que "Iza", "IZA", "iza", e "IzA" seriam todas consideradas iguais por este método.
Exemplo:
public class ExemploEqualsIgnoreCase {
public static void main(String[] args) {
String string1 = "Iza";
String string2 = "IZA";
String string3 = "Tec";
System.out.println(string1.equalsIgnoreCase(string2)); // true
System.out.println(string1.equalsIgnoreCase(string3)); // false
}
}
string1.equalsIgnoreCase(string2)
retorna true
porque, apesar de "Iza" e "IZA" terem diferentes capitalizações, seu conteúdo é equivalente quando ignoramos a diferença entre maiúsculas e minúsculas. Por outro lado, string1.equalsIgnoreCase(string3)
retorna false porque "Iza" e "Tec" são diferentes, independentemente da capitalização.Diferença entre equals() e equalsIgnoreCase()
- equals(): Compara duas strings levando em conta as diferenças entre maiúsculas e minúsculas. "Iza" e "IZA" seriam considerados diferentes.
- equalsIgnoreCase(): Compara duas strings ignorando as diferenças entre maiúsculas e minúsculas. "Iza" e "IZA" seriam considerados iguais.
Quando usar equalsIgnoreCase()?
- Validação de Entrada de Usuário: Quando você quer comparar strings de maneira que diferenças de capitalização não sejam relevantes. Por exemplo, ao comparar nomes de usuários, e-mails, ou respostas em formulários.
- Comparação de Texto: Quando a capitalização das letras não é importante para a lógica do seu programa e você quer garantir que todas as comparações sejam feitas de maneira insensível à capitalização.
equals()
O método equals()
em Java é usado para comparar dois objetos para verificar se eles são "igualmente" significativos. Isso significa que ele verifica se o conteúdo ou o estado de dois objetos é equivalente. No caso de strings, o método equals()
compara o conteúdo de duas strings, verificando se são exatamente iguais, incluindo maiúsculas e minúsculas.
O que é o método equals()?
O método equals()
é um método de instância definido na classe Object
, que é a superclasse de todas as classes em Java. Esse método é frequentemente sobrescrito em subclasses (como na classe String
) para fornecer uma comparação de igualdade adequada ao tipo de dado específico.
Assinatura do método
A assinatura do método equals()
na classe Object
é:
public boolean equals(Object obj)
Como funciona?
Quando você chama equals() em um objeto, ele compara o objeto atual com o objeto passado como argumento. No caso da classe String, o método equals() foi sobrescrito para comparar o conteúdo das strings, caracter por caracter
Exemplo básico:
public class ExemploEquals {
public static void main(String[] args) {
String string1 = "Iza";
String string2 = "Iza";
String string3 = "iza";
System.out.println(string1.equals(string2)); // true
System.out.println(string1.equals(string3)); // false
}
}
string1.equals(string2)
retorna true
porque ambas as strings contêm o mesmo conteúdo ("Iza"). No entanto, string1.equals(string3)
retorna false
porque "Iza" e "iza" diferem em maiúsculas e minúsculas.Diferença entre equals()
e ==
É importante não confundir o método equals()
com o operador ==
. Eles têm funções diferentes:
equals()
: Compara o conteúdo de dois objetos para determinar se eles são logicamente iguais.==
: Compara as referências de memória de dois objetos para verificar se eles apontam para o mesmo lugar na memória (ou seja, se são o mesmo objeto).
Exemplo:
String a = new String("Iza");
String b = new String("Iza");
::author-card{github="Rene-Antunes"}
::
## **trim()**
O método `trim()` da classe String em Java retorna uma nova string, removendo os espaços em branco do **início e do fim** da string original. Espaços em branco incluem espaços, tabulações (\t), e outros caracteres de espaço que possam estar presentes no começo ou no fim da string.
### Assinatura do método
A assinatura do método `trim()` é bastante simples:
```java
public String trim()
Como funciona?
Quando o método trim()
é chamado, ele percorre a string original desde o início até encontrar o primeiro caractere que não seja um espaço em branco, e então faz o mesmo do final para o começo. O conteúdo entre esses dois pontos (início e fim) é retornado como uma nova string. Se a string original não tiver espaços em branco no início ou no fim, o método retornará a própria string original.
Exemplo de uso
public class ExemploTrim {
public static void main(String[] args) {
// Exemplo simples de trim
String original = " Iza Tec ";
String semEspacos = original.trim();
// Exibindo o resultado
System.out.println("Original: '" + original + "'");
System.out.println("Sem espaços: '" + semEspacos + "'");
}
}
trim()
é chamado, esses espaços são removidos, resultando em uma string sem os espaços extras.Características importantes do método trim()
- Imutabilidade das Strings: Assim como outros métodos da classe String,
trim()
não altera a string original, mas retorna uma nova string com os espaços em branco removidos. - Não remove espaços internos:
trim()
só remove espaços em branco no início e no final da string. Espaços ou outros caracteres de espaço que estejam no meio da string permanecem inalterados. - Simplicidade:
trim()
é uma maneira rápida e eficiente de limpar uma string de espaços indesejados, especialmente útil em entradas de usuário.
Quando usar trim()?
Você pode usar o método trim()
em várias situações, como:
- Validação de Entrada de Dados: Para garantir que entradas de usuários não contenham espaços extras que poderiam invalidar a entrada ou causar comportamentos inesperados.
- Comparações de String: Antes de comparar strings, pode ser útil remover espaços em branco, especialmente se as strings foram coletadas de fontes diferentes ou através de entrada de usuário.
- Preparação de Dados: Ao manipular strings que serão usadas para busca, comparação ou exibição, remover espaços em branco desnecessários pode ajudar a evitar problemas de formatação.
Exemplo prático
Imagine que você esteja desenvolvendo um formulário de login onde os usuários inserem seus nomes de usuário e senhas. Se um usuário acidentalmente incluir espaços extras no início ou no fim de sua entrada, isso pode causar erros na autenticação. Usando trim()
, você pode limpar essas entradas antes de processá-las:
import java.util.Scanner;
public class LoginExemplo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Entrada do usuário
System.out.print("Digite seu nome de usuário: ");
String usuario = scanner.nextLine().trim();
System.out.print("Digite sua senha: ");
String senha = scanner.nextLine().trim();
// Validação simplificada
if (usuario.equals("admin") && senha.equals("12345")) {
System.out.println("Login bem-sucedido!");
} else {
System.out.println("Nome de usuário ou senha incorretos.");
}
}
}

toUperrCase()
toUpperCase()
assim como o método toLowerCase()
é um método da classe String em Java que retorna uma nova string, porém, com todos os caracteres convertidos para maiúsculas, de acordo com as regras de capitalização do idioma em uso. Importante lembrar que este método não altera a string original; ele apenas cria uma nova string com a alteração aplicada.
Assinatura do método
Como também no método toLowerCase()
, aqui também temos duas variações do método:
- String toUpperCase(): Converte a string para maiúsculas usando as configurações de localidade padrão do sistema (geralmente com base na localidade configurada para a JVM).
- String toUpperCase(Locale locale): Converte a string para maiúsculas de acordo com uma localidade específica, o que pode ser útil em cenários multilinguísticos.
Como funciona?
A forma como funciona é a mesma do toLowerCase(), assim que é chamado, ele percorre todos os caracteres da string e converte os que estão em minúsculo para maiúsculo.
Exemplo de uso
public class ExemploToUpperCase {
public static void main(String[] args) {
// Exemplo simples de conversão para maiúsculas
String original = "Iza tec!";
String maiusculas = original.toUpperCase();
// Exibindo o resultado
System.out.println("Original: " + original);
System.out.println("Maiúsculas: " + maiusculas);
}
}
Exemplo com Localidade
import java.util.Locale;
public class ExemploToUpperCaseComLocalidade {
public static void main(String[] args) {
// Exemplo de conversão com localidade turca
String texto = "istanbul";
String maiusculasTurco = texto.toUpperCase(new Locale("tr", "TR"));
System.out.println("Maiúsculas com localidade turca: " + maiusculasTurco);
}
}
Características importantes do método toUpperCase()
- Imutabilidade das Strings: Como todas as strings em Java são imutáveis, o método toUpperCase() não altera a string original, mas retorna uma nova string com os caracteres modificados.
- Sensível à Localidade: O método toUpperCase(Locale locale) permite que você converta as letras para maiúsculas de acordo com as regras linguísticas específicas de uma determinada localidade.
- Desempenho: Embora o método seja eficiente para conversões simples de letras, o desempenho pode ser afetado se for chamado repetidamente em grandes volumes de dados ou dentro de loops. Portanto, é recomendado usá-lo com cuidado em cenários de alto desempenho.
Quando usar toUpperCase()?
Você pode usar o método toUpperCase()
em várias situações, como:
- Validações: Para garantir que a entrada de dados esteja em maiúsculas (por exemplo, para códigos de identificação ou placas de veículos).
- Padronização de Textos: Ao exibir dados uniformes em uma interface de usuário, como títulos ou cabeçalhos que devem estar em maiúsculas.
- Comparações de String: Em algumas situações, você pode precisar comparar strings sem levar em consideração a diferença entre maiúsculas e minúsculas. Convertendo ambas as strings para maiúsculas antes da comparação, você pode fazer isso de maneira mais eficiente.