Salut
Quelqu'un connaîtrais-t-il une méthode qui permettrait de scanner une String, et d'en extraire chacun des caractère pour les utiliser après?
Salut
Quelqu'un connaîtrais-t-il une méthode qui permettrait de scanner une String, et d'en extraire chacun des caractère pour les utiliser après?
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Bonjour,
la classe String possède différentes méthodes, comme charAt, substring, indexOf, matches... permettant de l'analyser.
As-tu regardé la javadoc de cette classe?
Que veux-tu faire exactement?
Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.
oui, j'ai regardé mais rien ne correspond à ce que j'attends, ce que je recherche est plutôt une méthode "artisanal", qui me permettrait d'extraire chacun des caractère d'une string pour leur appliquer un traitement du genre:
if (le premier char de "abcd" est "a")
{
a = x
}
etc.. pour chacun des caractère de la String.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Tu as essayé un:
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String[] t = new String("toto").split(""); System.out.println(t);
Le split("") te permet de spliter et d'obtenir dans un tableau de string chaque caractère. Ce n'est surement pas la chose la plus propre qu'il soit, j'en conviens mais ça correspond à tes attentes me semble t-il.
« War is peace. Freedom is slavery. Ignorance is strength. » - George Orwell
Tu as la méthode toCharArray() qui te renvoie un char[] correspondant à ta String. Tu peux alors modifier ces caractères un par un.
Pour revenir à une String après ton traitement tu as le constructeur new String(char[])
Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.
effectivement c'est pas très propre, d'autant que String dispose d'une méthode toCharArray!
edit: grillé par le toutou d'Obélix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 char[] tableau = laChaine.toCharArray(); // modifier le tableau comme vous voulez laChaineNouvelle = new String(tableau);
D'où l'importance d'avoir toujours un raccourci vers l'API java
C'est quand même mieux d'utiliser une méthode standard plutôt qu'une longue bidouille
Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.
Aie, j'aime pas les tableaux, j'ai toujours du mal avec.
J'ai donc utilisé la méthode toCharArray().
Maintenant comment je peut faire pour ressortir l'élément 1 du tableau?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char [] tableau = maString.toCharArray (); for (int i=0;i<tableau.length;i++) { // traitements }
Si je ne me trompe pas dans un tableau, le premier index commence à 1?!
je voudrais faire un truc du genre:
Je sais me déplacer dans un Vector mais pas dans un tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if (tableau."element1" = "a") { attribué à la nouvelle String une valeur de son élément1 de mon choix } if (tableau."element2" = "b") { attribué à la nouvelle String une valeur de son élément1 de mon choix }
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Ah j'ai trouvé charAt(), je vais tester avec cette méthode.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
non, un tableau commence par 0, pas 1!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 String s = "abc"; char[] cs = s.toCharArray(); for(int i=0; i<cs.length; i++) { switch(i) { case 0: if(cs[i]=='a') cs[i] = 'x'; break; case 1: if(cs[i]=='b') cs[i] = 'y'; break; case 2: if(cs[i]=='c') cs[i] = 'z'; break; default: throw new RuntimeException("out of bounds!"); } } String result = new String(cs); // xyz
"Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"
Confucius, 448 av. J-C
hum, j'ai un tableau de 2 caractères spéciaux:
et je souhaiterais dans mon if opposé les caractères de ma String à ce tableau, alors j'ai fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 String valA = "#"; String valB = "@"; String[] caractere = {valA, valB};
mais je ne peut mettre de .equals() à la place des ==.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 char [] tableau = maString.toCharArray (); String motEnTransformation = new String (tableau); for (int i=0;i<tableau.length;i++) { if (motEnTransformation .charAt (i) == }
Il faudrai que je puisse balayer le [] caractere et le comparer à motEnTransformation.
edit: Ah je n'avais pas vu ton post, je vais tester le switch, et en plus c'est débile ce que j'ai dit lorsque je demande si un tableau comment par 1 ou 0 étant donné que je met un int i=0, mais c'est la faim qui commence !!!
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
arf, pour certains des char je doit mettre "[%]", mais ce n'est pas valide en char, alors j'ai une erreur de format.
Devrai-je convertir tous le tableau de char en un tableau de String?
edit: Après essaie du switch avec cette petite modif:
'[' + '%' +']'
il me retourne la conversion du premier caractère seulement,
j'ai fait un essai avec abab:
il me retourne 4a pour aa
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 char [] tableau = motAConvertir.toCharArray (); for (int i=0;i<tableau.length;i++) { switch(i) { case 0: if(tableau[i]=='a') tableau[i] = '5'; break; case 1: if(tableau[i]=='b') tableau[i] = '[' + '%' +']'; break; case 2: if(tableau[i]=='c') tableau[i] = 'z'; break; default: throw new RuntimeException("out of bounds!"); } } String result = new String(tableau);
4ù pour ab
ba pour ba
et
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: out of bounds! pour abab
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
ça à l'air très confus dans ta tête tout ça....
peux-tu déjà nous expliquer clairement ce que tu veux faire: qu'as-tu en entrée, et que veux-tu en sortie?
EDIT: un char n'est pas une string: il ne peut contenir qu'un seul et unique caractère!
"Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"
Confucius, 448 av. J-C
Ben en fait c'est l'effet tableau qui provoque ça chez moi .
je doit créer un soft de conversion, on rentre un mot, et le soft doit le transformer en un code, le problème est que dans les règles de gestion du soft,
certain caractères sont du genre [%] ou encore |>, en plus des chiffres et lettres. L'un des exemples de travail de la version test du code qu'on m'a fournis est :
étoile
ce mot doit devenir:
4& R; <w }_) @ù 4
j'ai espacé pour que vous voyez à quoi correspond chaque caractère du mot étoile.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
pill_S: c'est pas la forme aujourd'hui: une boucle avec un switch pour pas faire un if-then-else???
aurait du être codé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for(int i=0; i<cs.length; i++) { switch(i) { case 0: if(cs[i]=='a') cs[i] = 'x'; break; case 1: if(cs[i]=='b') cs[i] = 'y'; break; case 2: if(cs[i]=='c') cs[i] = 'z'; break; default: throw new RuntimeException("out of bounds!"); } }
L'itération n'ayant aucun sens (quand on fait un boucle avec un switch sur son index, c'est que la boucle n'a pas de ses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (cs.length>0 && cs[0]=='a') cs[0]='x'; if (cs.length>1 && cs[1]=='b') cs[1]='y'; if (cs.length>2 && cs[2]=='c') cs[2]='z'; if (cs.length>3) throw new RuntimeException("out of bounds!");
Tora là tu ne transforme pas un caractère en un autre, tu remplace un caractère par un ou plusieurs autres, c'est pas tout à fait la même logique.
voici un embryon de code à compléter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 private String convertCharacter(char c){ // a coder, retourne le code auquel correspond un charactère } private String convertString(String s){ StringBuilder sb = new StringBuilder(); for (char c : s.toCharArray()){ sb.append(convertCharacter(c)); } return sb.toString(); }
ce que vous proposez implique que je doit faire autant de if que j'ai de caractère possible pour la première lettre avec autant de then que j'ai de caractère possible en retour. hum, par exemple, si je me limite à l'alphabet de a à z sans les caractère avec accent ou autre, de devrais faire 26 if pour le premier caratère, 26 pour le second.
c'est bien ca?
édit: avait pas le post affiché je go tester.
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
La transcription d'un caractère de la première case de ton tableau d'entrée et la transcription du même caractère mais dans la seconde case n'est pas la même ?
Ben normalement si
Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !
-Perceval-
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager