Vetores e Strings
Neste tópico, vamos reforçar os vetores (arrays) em Java e conhecer os principais métodos de texto (String). Eles aparecem juntos com muita frequência, porque vetores de nomes, itens e personagens são String[] percorridos com laços.
Parte 1: Reforçando vetores
Seção intitulada “Parte 1: Reforçando vetores”Um vetor guarda vários valores do mesmo tipo usando um único nome.
int[] pontos = new int[5];Nesse exemplo:
int[]indica que o vetor guarda inteiros;pontosé o nome do vetor;new int[5]cria um vetor com5posições.
A primeira posição é sempre a 0. Um vetor de 5 posições vai de 0 a 4.
pontos[0] = 10;pontos[1] = 25;pontos[4] = 90;Percorrendo com for
Seção intitulada “Percorrendo com for”O jeito mais comum de trabalhar com vetores é percorrê-los com um for:
for (int i = 0; i < pontos.length; i++) { System.out.println("Posição " + i + ": " + pontos[i]);}Repare no uso de pontos.length, que devolve a quantidade de posições do vetor.
Exemplo: somar os valores
Seção intitulada “Exemplo: somar os valores”int soma = 0;
for (int i = 0; i < pontos.length; i++) { soma = soma + pontos[i];}Parte 2: Métodos de String
Seção intitulada “Parte 2: Métodos de String”Uma String guarda texto. Além de exibir o texto, podemos usar métodos para descobrir informações e transformar o conteúdo.
| Método | O que faz | Exemplo | Resultado |
|---|---|---|---|
.length() | Quantidade de caracteres | "Ana".length() | 3 |
.charAt(i) | Caractere na posição i | "Ana".charAt(0) | 'A' |
.substring(a, b) | Parte do texto de a até b-1 | "Ana".substring(0, 2) | "An" |
.toUpperCase() | Tudo em maiúsculas | "ana".toUpperCase() | "ANA" |
.toLowerCase() | Tudo em minúsculas | "ANA".toLowerCase() | "ana" |
.equalsIgnoreCase(x) | Compara ignorando maiúsculas | "Ana".equalsIgnoreCase("ana") | true |
String nome = "Ana";
System.out.println(nome.length()); // 3System.out.println(nome.charAt(0)); // ASystem.out.println(nome.substring(0, 2)); // AnSystem.out.println(nome.toUpperCase()); // ANASystem.out.println(nome.equalsIgnoreCase("ana")); // trueParte 3: Juntando os dois
Seção intitulada “Parte 3: Juntando os dois”Vetores de String são percorridos como qualquer outro vetor, e cada posição pode ser usada com os métodos de texto.
import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
String[] inventario = new String[4];
for (int i = 0; i < inventario.length; i++) { System.out.print("Item " + i + ": "); inventario[i] = scanner.next(); }
for (int i = 0; i < inventario.length; i++) { String item = inventario[i]; System.out.println((i + 1) + " - " + item.toUpperCase() + " (" + item.length() + " letras)"); }
scanner.close(); }}Nesse exemplo, o for percorre o vetor de nomes e, para cada item, usamos .toUpperCase() e .length().
Também é comum usar vetores paralelos: dois vetores em que a posição i de um corresponde à posição i do outro.
String[] nomes = new String[3];int[] pontos = new int[3];Assim, nomes[1] guarda o nome do jogador cujos pontos estão em pontos[1].
Erros comuns
Seção intitulada “Erros comuns”- Usar
vetor.length()com parênteses (em Java, évetor.length, sem parênteses). - Tentar acessar uma posição fora do vetor (ex.:
pontos[5]em um vetor de5posições). - Esquecer que a última posição é
length - 1. - Comparar textos com
==em vez de.equals(...)ou.equalsIgnoreCase(...). - Usar
.substring(a, b)sem lembrar que o segundo índice não é incluído.