Iterar sobre caracteres de string em Java
-
Utilizar
String.chars()
em Java 8 para Iterar sobre todos os caracteres de uma string -
Use
String.codePoints()
Java 8 para repetir todos os caracteres em uma string em Java -
Use
String.toCharArray()
para repetir todos os caracteres em uma string em Java -
Utilize
StringCharacterIterator
para Iterar sobre todos os caracteres de uma string em Java -
Utilize
String.split()
para fazer Loop Over All Characters in a String em Java
Este artigo irá introduzir vários métodos para iterar sobre cada caractere de uma string em Java.
Utilizar String.chars()
em Java 8 para Iterar sobre todos os caracteres de uma string
Java 8 fornece-nos um novo método String.chars()
que devolve um IntStream
. O IntStream
devolvido contém uma representação inteira dos caracteres da string. Aqui obtemos stream1
de myString.chars()
.
Mapeamos o IntStream
devolvido para um objecto. O stream1.mapToObj()
converte os valores inteiros no seu respectivo equivalente em caracteres. No entanto, para exibir e ler os caracteres, precisamos de os converter numa forma de caracteres de fácil utilização.
import java.util.stream.IntStream;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello There!";
String myString2 = "My Friends";
String myString3 = "Happy Coding";
IntStream stream1 = myString.chars();
IntStream stream2 = myString2.chars();
IntStream stream3 = myString3.chars();
stream1.mapToObj(Character::toChars).forEach(System.out::print);
System.out.println("");
stream2.mapToObj(i -> new Character((char) i)).forEach(System.out::print);
System.out.println("");
stream3.forEach(i -> System.out.print(Character.toChars(i)));
}
}
Resultado:
Hello There!
My Friends
Happy Coding
Use String.codePoints()
Java 8 para repetir todos os caracteres em uma string em Java
Java 8 String.codePoints()
devolve um IntStream
de pontos de código Unicode a partir desta sequência. Retorna os valores ASCII
do carácter passado.
Podemos mapear o IntStream
devolvido a um objecto utilizando stream.mapToObj
para que seja automaticamente convertido num Stream<Character>
. Utilizamos a referência do método e imprimimos cada caracter na string especificada.
import java.util.stream.IntStream;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Happy Coding";
IntStream stream = myString.codePoints();
stream.mapToObj(Character::toChars).forEach(System.out::print);
}
}
Resultado:
Happy Coding
Use String.toCharArray()
para repetir todos os caracteres em uma string em Java
O método String.toCharArray()
converte a string dada numa sequência de caracteres. Retorna um array Character
cujo comprimento é semelhante ao comprimento da string.
Para iterar sobre cada caractere de uma string, podemos utilizar toCharArray()
e exibir cada caractere.
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
char[] chars = myString.toCharArray();
int len = chars.length;
System.out.println("length of the char array: " + len);
for (char ch : chars) {
System.out.println(ch);
}
}
}
Resultado:
length of the char array: 13
H
e
l
l
o
F
r
i
e
n
d
s
Utilize StringCharacterIterator
para Iterar sobre todos os caracteres de uma string em Java
A classe StringCharacterIterator
implementa uma iteração bidireccional da string. Toma uma string como parâmetro, que constrói um iterador com um índice inicial de 0.
No laço while
, chamamos current()
ao iterador it
, que retorna o caractere na posição actual ou retorna DONE
se a posição actual for o fim do texto.
O método next()
no it
, que retorna o caractere na nova posição ou DONE
se a nova posição for o fim do texto.
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
CharacterIterator it = new StringCharacterIterator(myString);
while (it.current() != CharacterIterator.DONE) {
System.out.print(it.current());
it.next();
}
}
}
Resultado:
Hello Friends
Utilize String.split()
para fazer Loop Over All Characters in a String em Java
O método String.split()
divide a string contra a expressão regular dada e devolve uma nova matriz.
No código abaixo, utilizamos myString.split("")
para dividir a string entre cada caractere. Podemos iterar cada caractere no str_arr
e exibi-lo.
public class ForEachChar {
public static void main(String[] args) {
String myString = "Hello Friends";
String[] str_arr = myString.split("");
for (String ch : str_arr) {
System.out.print(ch);
}
}
}
Resultado:
Hello Friends
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtigo relacionado - Java String
- Como converter a string Java em Byte
- Como converter Byte Array em Hex String em Java
- Como realizar a conversão de string em array de string em Java
- Como remover string de string em Java
- Comparar Strings em Java
- Gerar String Aleatória em Java