Comment pouvez-vous diviser un mot en ses lettres constitutives?
Exemple de code qui ne fonctionne pas
class Test {
public static void main( String[] args) {
String[] result = "Stack Me 123 Heppa1 oeu".split("\\a");
// output should be
// S
// t
// a
// c
// k
// M
// e
// H
// e
// ...
for ( int x=0; x<result.length; x++) {
System.out.println(result[x] + "\n");
}
}
}
Le problème semble être dans le caractère \\a
. Ce devrait être un [A-Za-z].
Vous devez utiliser split("");
.
Cela le divisera par chaque personnage.
Cependant, je pense qu'il serait préférable d'itérer sur les caractères d'un String
comme ceci:
for (int i = 0;i < str.length(); i++){
System.out.println(str.charAt(i));
}
Il n'est pas nécessaire de créer une autre copie de votre String
sous une forme différente.
"Stack Me 123 Heppa1 oeu".toCharArray()
?
Y compris les chiffres mais pas les espaces:
"Stack Me 123 Heppa1 oeu".replaceAll("\\W","").toCharArray();
=> S, t, a, c, k, M, e, 1, 2, 3, H, e, p, p, a, 1, o, e, u
Sans chiffres ni espaces:
"Stack Me 123 Heppa1 oeu".replaceAll("[^a-z^A-Z]","").toCharArray()
=> S, t, a, c, k, M, e, H, e, p, p, a, o, e, u
Vous pouvez utiliser
String [] strArr = Str.split("");
char[] result = "Stack Me 123 Heppa1 oeu".toCharArray();
Je suis à peu près sûr qu'il ne veut pas que les espaces soient générés.
for (char c: s.toCharArray()) {
if (isAlpha(c)) {
System.out.println(c);
}
}
String[] result = "Stack Me 123 Heppa1 oeu".split("**(?<=\\G.{1})**");
System.out.println(Java.util.Arrays.toString(result));