quarta-feira, 29 de abril de 2015

O básico sobre Strings no Java

Tratar texto é uma tarefa comum em qualquer linguagem de programação. Os textos são representados por um tipo de dado chamado String(qualquer sequência de caracteres). No Java, String é um tipo de dado não primitivo, que são também objetos, ou seja, têm métodos e atributos. Por outro lado, há também os tipos de dados que não são objetos, são primitivos, como o int, char, long, entre outros.
Nessa postagem iremos explorar um pouquinho a classe String do Java e os seus métodos mais usados.

A classe String

Texto em Java é tudo entre aspas. O que está entre as aspas é o conteúdo de um objeto do tipo String. Para entender melhor veja o simples pedaço de código:

System.out.println("Classe String: " + "".getClass());

Ao executarmos esse código, texto o seguinte no console:

Classe String: class java.lang.String

A classe java.lang.String é muito bem documentada e poderosa. Notem que por ser um tipo, podemos declarar variáveis do tipo String.
A seguir veremos os métodos mais usados para manipulação de String no Java.

Alguns métodos interessantes

Objectos String é imutável, ou seja, o seu estado não pode ser mudado após a criação, logo, os métodos não modificam a String original, mas sim retornam uma nova instância de String quando há alguma transformação feita na String original. Bem, vamos aos métodos:

length()

Retorna o tamanho da String(número de caracteres). Por exemplo "123456".length() irá retornar 6.

concat(String str)

Irá concatenar(juntar) uma String com a outra. Uma simplificação desse método é através do operador +:

String ola = "Olá";
String mundo = "Mundo!";
String olaMundo = ola.concat(" ").concat(mundo);
String olaMundo2 = ola + " " + mundo;
System.out.println(olaMundo); 
System.out.println(olaMundo2);

Isso irá retornar:

Olá Mundo!
Olá Mundo!

charAt(int index)

O método charAt serve para localizarmos um caracter dentro de uma String dado o índice index. Lembrando que o indíce começa em 0. Veja um exemplo:

String java = "Java";
for (int i = 0; i < java.length(); i++) {
System.out.println("Caracter na posição " + i + ": " + java.charAt(i));
}

Isso irá resultar no seguinte:

Caracter na posição 0: J
Caracter na posição 1: a
Caracter na posição 2: v
Caracter na posição 3: a

getBytes()

Retorna os bytes da String. Isso pode não parecer útil agora, no entanto, é muito interessante quando tentamos transmitir texto pela rede, por exemplo, ou colocar ele em uma resposta HTTP.

equals(Object outraString)

Compara se as duas String são iguais. Note que o operador == não servirá para comparar o conteúdo de String, mas sim a referência de memória do objeto, o que pode levar a resultados errôneos! Logo, é recomendável usar equals invés de ==. Uma explicação mais completa pode ser vista nesse blog.

equalsIgnoreCase(String anotherString)

Irá comparar se duas String são iguais independente se há caracteres maiúsculos ou minúsculos:

String java = "Java";
System.out.println("Java é igual a Java? " +  java.equals("Java"));
System.out.println("Java é igual a java? " + java.equals("java") );
System.out.println("Java é igual a java?(ignoreCase) " + java.equalsIgnoreCase("java") );

Saída:

Java é igual a Java? true
Java é igual a java? false
Java é igual a java?(ignoreCase) true

 startsWith(String prefix)


Irá verificar se a String termina com um dado prefixo.

 

Conclusão


Esse foi o básico do básico sobre String. Há muito a se aprender e você pode ir mais a fundo lendo a documentação da classe String.

Nenhum comentário:

Postar um comentário