Java Doc

String

java.lang.String desde v.1.0

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 String dispoê de vários métodos que ajudam a performar as operações com string, alguns dos mais conhecidos são: trim(), toUppercase(), toLowercase(), equals(), equalsIgnoreCase(), compare(), concat(), split(), lenth(), replace(), compareTo(), intern(), subtring(). Vamos abordar alguns dos mais importantes em mais detalhes em outro momento.

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.

A String Java é imutável, o que significa que não pode ser alterada. Sempre que mudamos uma String, uma nova instância é criada. Para Strings mutaveis podemos usar as classes StringBuffer e StringBuilder. Vamos falar sobre as diferenças entre eles em outra ocasião, no momento vamos focar em entender o que é uma String em Java e como criar o Objet String.

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:

  1. Por String literal
  2. Por uma nova palavra-chave

1 - String literal

Java String literal é criada usando aspas duplas (""), por exemplo:

String s = "IzaTec";
Sempre que uma String literal é criada, a JVM (Java Virtual Machine) primeiro verifica se a string já existe na "string constant pool" (uma área de memória específica). Se a string já existir, uma referência à string existente é retornada. Se a string não existir na "string constant pool", uma nova instância da string é criada e adicionada a essa área de memória. Por exemplo:

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.

Em Java, o conceito de String literal é usado para tornar o Java mais eficiente, pois novos objetos não serão criados se já existirem na área de memória conhecida como "string constant pool".

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

Um método de instância é um método que pertence a uma instância específica de uma classe, ou seja, a um objeto criado a partir dessa classe. Para chamar um método de instância, você precisa ter um objeto da classe em que o método foi definido. Esses métodos podem acessar e modificar os atributos de instância (ou seja, os atributos que pertencem ao objeto em particular) e geralmente são usados para operar nos dados contidos em objetos individuais.

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)

A primeira variante utiliza a configuração regional padrão do sistema para converter os caracteres, enquanto a segunda permite especificar um objeto Locale para definir a configuração regional desejada.

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
    }
}
O objeto Locale é criado com o código de idioma "pt" (para português) e o código de país "BR" (para Brasil). Isso garante que a conversão respeite as regras específicas da língua portuguesa conforme usada no Brasil.

Considerações importantes

  1. 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.
  2. 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.
  3. 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:

  1. 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).
  2. 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);
    }
}
No exemplo acima, a string original "Iza tec!" é convertida para "IZA TEC!" usando o método toUpperCase(). Como pode ser observado, os caracteres que já estavam em maiúsculas e outros símbolos, como o espaço e o ponto de exclamação, permanecem inalterados.

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);
    }
}
Neste exemplo, quando usamos o método toUpperCase() com a localidade turca, o comportamento é diferente para a letra "i". No idioma turco, o caractere "i" minúsculo é convertido para "İ" (i maiúsculo com ponto), o que demonstra como as regras de capitalização podem variar entre as diferentes localidades.

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()
Este método não possui parâmetros e retorna uma nova string, onde todos os caracteres de espaço no início e no final da string original são removidos.

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 + "'");
    }
}
No exemplo acima, a string original contém espaços no início e no fim. Quando 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.");
        }
    }
}
Neste exemplo, o método trim() é utilizado para garantir que o nome de usuário e a senha inseridos não contenham espaços desnecessários no início ou no fim, evitando potenciais falhas na autenticaçã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)
Este método recebe um objeto como parâmetro e retorna true se o objeto passado for "igual" ao objeto que chama o método, e false caso contrário.

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
    }
}
No exemplo acima, 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
Aqui, 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)
Este método recebe uma string como parâmetro e retorna 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
    }
}
No exemplo acima, 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)
Este método recebe um objeto como parâmetro e retorna true se o objeto passado for "igual" ao objeto que chama o método, e false caso contrário.

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
    }
}
No exemplo acima, 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()
Este método não possui parâmetros e retorna uma nova string, onde todos os caracteres de espaço no início e no final da string original são removidos.

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 + "'");
    }
}
No exemplo acima, a string original contém espaços no início e no fim. Quando 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.");
        }
    }
}
Neste exemplo, o método trim() é utilizado para garantir que o nome de usuário e a senha inseridos não contenham espaços desnecessários no início ou no fim, evitando potenciais falhas na autenticação.
Renê AntunesRene-Antunes

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:

  1. 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).
  2. 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);
    }
}
No exemplo acima, a string original "Iza tec!" é convertida para "IZA TEC!" usando o método toUpperCase(). Como pode ser observado, os caracteres que já estavam em maiúsculas e outros símbolos, como o espaço e o ponto de exclamação, permanecem inalterados.

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);
    }
}
Neste exemplo, quando usamos o método toUpperCase() com a localidade turca, o comportamento é diferente para a letra "i". No idioma turco, o caractere "i" minúsculo é convertido para "İ" (i maiúsculo com ponto), o que demonstra como as regras de capitalização podem variar entre as diferentes localidades.

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.