A classe java.lang.String
A classe java.lang.String é utilizada para representar textos (sequência de caracteres). O tamanho que uma String suporta é igual ao tamanho disponível de memória.
Para criar uma String podemos utilizar qualquer uma das seguintes formas:
Para fazer a concatenação de Strings podemos usar o sinal + ou usar o método concat da classe String, por exemplo:
O valor de uma String é imutável, não se pode alterar seu valor. Quando alteramos o valor de uma String, estamos criando uma nova String.
Então, quando fazemos:
Estamos criando 3 Strings:
Alguns caracteres não podem ser simplesmente colocados dentro de uma String, como, as aspas duplas (“).Este símbolo é usado para indicar o início e o fim de uma String. Por este motivo, caso tenhamos:
Teremos um erro de compilação, pois estamos deixando uma aspas duplas “ fora do texto. Para os caracteres que não podem ser simplesmente adicionados dentro da String, usamos a barra invertida \ como escape de caracteres. Segue abaixo uma tabela com alguns escapes de caracteres e o que eles representam dentro da String.
\t | Tabulação horizontal |
\n | Nova linha |
" | Aspas duplas |
' | Aspas simples |
\\ | Barra invertida |
A classe java.lang.String tem alguns métodos para se trabalhar com os textos, por exemplo:
- compareTo – Compara se duas Strings são iguais. Ele retorna um número inteiro sendo 0 apenas caso ambas as String sejam idênticas.
- compareToIgnoreCase – Compara se duas Strings são iguais sem diferenciar letras maiúsculas e minúsculas.
- equals – Verifica se uma String é igual a outra. Retorna um tipo booleano.
- replace – Altera um caractere de uma String por outro caractere.
- replaceAll – Altera cada substring dentro da String com uma nova substring.
- split – Divide uma String em varias substrings a partir de uma dada expressão regular.
Mais métodos da classe String podem ser encontrados em: http://java.sun.com/javase/6/docs/api/java/lang/String.html.
Cuidado ao utilizar os métodos da String, quando não houver uma instancia da classe String, no caso null. Invocar um método de uma referência nula gera uma exceção NullPointerException, um erro que ocorre em tempo de execução, por exemplo:
Este código lançará uma NullPointerException, pois a String abc está vazia (null), e está tentando invocar o método equals() de um String null (exceções serão abordadas).
Conversão para String (texto)
Para transformar qualquer tipo primitivo para String, basta utilizar o método:
Para utilizá-lo, você deve atribuir a saída do método a uma String, e preencher o campo interno do método com o valor desejado, por exemplo:
Conversão de inteiro para String:
Observe que na segunda linha, a variável do tipo inteira está sendo utilizada no método valueOf() para que a conversão possa ser executada, e o resultado da conversão está sendo atribuída a String chamada texto.
O método valueOf() pode converter os seguintes tipos para String:
Note que os tipos byte e short não constam nesta lista, logo, para realizar a sua conversão é necessário transformar estes tipos primeiramente em int e só então convertê-los para String.
Conversão de String para tipos primitivos
Assim como tratamos da manipulação de tipos de valores primitivos para String, nesta seção falaremos sobre a conversão de tipos primitivos para String.
Em Java é possível transformar qualquer String em um tipo primitivo, para tal, é necessário utilizar um dos conversores específicos de cada tipo, são eles:
Recebendo Strings como parâmetro diretamente no método main
Quando executamos uma classe que possui o método public static void main(String[] args), podemos passar parâmetros para este método.
Para passar os parâmetros para o método main via console, utilizamos a seguinte sintaxe:
No exemplo a seguir, criamos um programa que recebe alguns nomes como parâmetro:
Se executarmos esta classe sem passar parâmetros, será impresso a seguinte mensagem:
Quando executamos a aplicação passando os nomes como parâmetro, estes nomes são impressos no console. Note que quando precisamos passar um parâmetro que possua espaços em brancos, devemos utilizar as aspas duplas para delimitar a área do parâmetro, por exemplo Cristiano e “Rafael Sakurai”.