05 - Strings
Strings em Java possuem recursos muito parecidos com o que já conhecemos de Python. Veja alguns exemplos introdutórios abaixo.
S := "Bla bla bla"
# mostra no terminal
PRINT("Valor de s:" + S)
# cópia de trechos da string
bla1 := SUBSTRING(S, 0, 3) # Bla
bla3 := SUBSTRING(S, 8) # Vai até o fim se não passar o segundo
LOWER := LOWERCASE(S)
# checa se a string é vazia
v := EH_VAZIO(S)
# checa se a string é só de espaços em branco
v := SO_ESPACOS(S)
# checa se duas strings são iguais
igual := S = bla1
String s = "Bla bla bla";
// mostra no terminal
System.out.println("Valor de s: " + s);
// cópia de um trecho da String
String bla1 = s.substring(0, 3); // Bla
String bla3 = s.substring(8); // bla - vai até o fim da String se não passar o segundo
String lower = s.toLowerCase(); // bla bla bla
// checa se é string vazia
s.isEmpty();
// checa se a string é só de espaços em branco
s.isBlank();
// checa se duas strings são iguais
boolean igual = s.equals(bla1);
Atenção
Nunca use ==
para comparar Strings. O correto é sempre usar o método equals()
. Isso na verdade vale para todos objetos em Java.
Em Pseudo código vamos tratar String
sempre como um array, porém na implementação em Java existem algumas diferenças importantes.
String vs Char
Em Java a String é uma sequência de char
, um objeto que representa um único caractere. Quando queremos representar um único caractere usando aspas simples (por exemplo, 'a'
). Quando queremos uma sequência de char
sempre usamos aspas duplas (por exemplo, "texto"
)
char c = 'a'; // só um caractere
// substitui toda ocorrência da letra 'a' por 'e'
String ble = s.replace('a', 'e'); // Ble ble ble
Exercício 1
Resposta
Uma string de tamanho 1 (com um só caractere) é diferente de do caractere sozinho em si. A expressão continuaria false
se tentássemos algo do tipo "a".equals('a')
, já que nesse caso os tipos são diferentes.
Algumas operações corriqueiras com strings são:
-
Percorrer caracteres usando índice:
- pode acessar vizinhos
- tem índice e caractere ao mesmo tempo
-
Processar por linhas:
-
Separar por espaços em branco:
A operação DIVIDE(S, P)
divide uma string pelo padrão P
, retornando um ARRAY
de String
com as partes de S
. Padrões comuns são "\n"
(linhas) e "\s"
(espaços).
Java tem uma extensa documentação online. Todos os métodos de String podem ser vistos neste link.