[java] Come posso applicare il ciclo for-each a ogni carattere in una stringa?



Answers

String s = "xyz";
for(int i = 0; i < s.length(); i++)
{
   char c = s.charAt(i);
}

Question

Quindi voglio ripetere per ogni carattere in una stringa.

Così ho pensato:

for (char c : "xyz")

ma ottengo un errore del compilatore:

MyClass.java:20: foreach not applicable to expression type

Come posso fare questo?




Per Travers an String puoi anche usare charAt() con la stringa.

piace :

String str = "xyz"; // given String
char st = str.charAt(0); // for example we take 0 index element 
System.out.println(st); // print the char at 0 index 

charAt() è il metodo di gestione delle stringhe in java che aiuta a attraversare la stringa per un carattere specifico.




Se si utilizza Java 8, è possibile utilizzare chars() su una String per ottenere un Stream di caratteri, ma sarà necessario eseguire il cast di int su un char quanto chars() restituisce un IntStream .

"xyz".chars().forEach(i -> System.out.print((char)i));

Se si utilizza Java 8 con Eclipse Collections , è possibile utilizzare la classe forEach metodo forEach con un riferimento lambda o metodo per iterare su tutti i caratteri in una String .

CharAdapter.adapt("xyz").forEach(c -> System.out.print(c));

Questo particolare esempio potrebbe anche usare un riferimento al metodo.

CharAdapter.adapt("xyz").forEach(System.out::print)

Nota: sono un committer per le raccolte di Eclipse.




Un'altra soluzione utile, puoi lavorare con questa stringa come array di String

for (String s : "xyz".split("")) {
    System.out.println(s);
}



Links