Pular para o conteúdo

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.

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 com 5 posiçõ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;

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.

int soma = 0;
for (int i = 0; i < pontos.length; i++) {
soma = soma + pontos[i];
}

Uma String guarda texto. Além de exibir o texto, podemos usar métodos para descobrir informações e transformar o conteúdo.

MétodoO que fazExemploResultado
.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()); // 3
System.out.println(nome.charAt(0)); // A
System.out.println(nome.substring(0, 2)); // An
System.out.println(nome.toUpperCase()); // ANA
System.out.println(nome.equalsIgnoreCase("ana")); // true

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].

  • 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 de 5 posiçõ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.