Salut !
Je veux connaitre le nom de la méthode Java qui prend en argument un caractère et retourne sa position.
j'ai besoin de votre aide s'il vous plaît, c'est urgent !
Merci d'avance.
Version imprimable
Salut !
Je veux connaitre le nom de la méthode Java qui prend en argument un caractère et retourne sa position.
j'ai besoin de votre aide s'il vous plaît, c'est urgent !
Merci d'avance.
La JavaDoc sera toujours ta plus grande amie. En l’occurrence la JavaDoc de String.
indexOf()
merci de m'avoir répondu si vite.Citation:
La JavaDoc sera toujours ta plus grande amie. En l’occurrence la JavaDoc de String.
indexOf()
J'ai déjà pensé à la fonction indexOf mais puisque je travaille avec la classe StringBuffer je ne sais pas comment ça va marcher ?
Il faut toujours se référer au javadoc de la classe.
A+.
je n'ai pas trouvé dans la page la méthode que je cherche ! :(Citation:
Il faut toujours se référer au javadoc de la classe.
je cherche une méthode qui prend en argument un caractère et retourne sa position dans la chaîne courante, sinon elle retourne -1.
Pour quoi est-ce que tu tiens tant à ce que ça soit un caractère ? Un caractère peut se transformer un une String
Je sais , mais c'est pas ça que je cherche !!Citation:
Un caractère peut se transformer un une String
de toute façon, j'ai trouvé la solution, La voici :
les méthodes de la classe String peuvent être utiliser dans la classe StringBuffer grâce à la méthode toString.
Merci quand même ;)
Comme si StringBuffer n'a pas la methode indexOf :no:
Moi non plus je n'ai pas compris, mais bon...:koi:
Ça lui déplaît de convertir son char en String.
Et sur le principe je lui donne pas complètement tort... Mais convertir son StringBuffer en String avec toString() est bien pire que cela -_-°.
et bah bien sur que oui !, c'est pour cela que j'ai converti la chaîne de la classe StringBuffer en String pour pouvoir utiliser la méthode indexOf.Citation:
Comme si StringBuffer n'a pas la methode indexOf
hélas !! pourtant c'est claire.Citation:
Moi non plus je n'ai pas compris, mais bon...
jettez un coup d’œil sur cet exemple, espérant que vous compreniez :
Code:
1
2
3
4
5
6
7
8
9
10
11 public class ST { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("Hello World"); int i = sb.toString().indexOf("r"); System.out.println(i); } }
absolument, je fait pas la conversion totale (La chaine sb restera toujours en StringBuffer) mais la conversion se fait temporairement en exécutant l'instruction :Citation:
Mais convertir son StringBuffer en String avec toString() est bien pire que cela
Code:int i = sb.toString().indexOf("r");
Cordialement.
On avait compris, mais pourquoi pas :
? Ça fait une opération (coûteuse, possiblement très,) en moins.Code:int i = sb.indexOf("r");
Le fait que je n'est pas appliqué la méthode indexOf sur la chaine directement c'est pour deux raisons :
- D'une part : il y a une surcharge de la méthode indexOf dans la classe stringBuffer, de deux façons, elle prend comme paramètre une chaine de caractère ou bien une chaine de caractère et un entier, et c'est pas ce que je veux !
- D'autre part : si on considère qu'un caractère peut être vu comme une chaine de caractère de taille 1, et donc si le caractère est inconnu (on l'appel d'une autre chaine) alors, que fait-on ?
mon problème se déroule sur deux parties :
- Je travaille avec la classe StringBuffer, évidement je ne peut travailler qu'avec les méthodes de cette classe.
- Cette classe ne contient pas une méthode qui pourra me retourner la position d'un caractère dans une chaine.
c'est pour cela que j'étais obligé de convertir la chaine de StringBuffer en String pour pouvoir utiliser la méthode indexOf de la classe String (qui prend en argument un caractère).
et voici une partie de mon code :
Code:
1
2
3
4
5
6
7
8
9
10
11 public class Nm_Position { public static void main(String args[]){ StringBuffer mon_nom = new StringBuffer("Khaled_PRG"); int nb_position; for(int i = 0;i <= mon_nom.length() - 1 ;i++) { nb_position = mon_nom.toString().indexOf(mon_nom.charAt(i)); System.out.println("La position de "+mon_nom.charAt(i)+" égal à "+nb_position); } } }
Je pense qu'il serait moins couteux de convertir le char en String avec la méthode static String.valueOf(Char c) plutôt que de passer par toString();
Comment !?! 8OCitation:
Je pense qu'il serait moins couteux de convertir le char en String avec la méthode static String.valueOf(Char c) plutôt que de passer par toString();
Il paraît que vous n'avez pas bien lus ce que j'ai écrit auparavant !
Cette fonction ne me conviens pas puisque je travaille avec la classe StringBuffer.
la méthode indexOf fait parti de la classe Stringbuffer et la méthode String.valueOf est une méthode static. Ou est le problème ?
Le problème c'est qu'il n'a pas le niveau pour comprendre ce qu'on lui dit, c'est tout -_-°. Robin semble vouloir laisser tomber la discussion.
De toute façon, c'est vrai que c'est dommage que StringBuffer et StringBuilder n'aient pas de méthode indexOf(int) ni indexOf(char).