Java Doc

String 2

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

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.