OVH Cloud OVH Cloud

Debutant Chaine de caracteres help!!!!

13 réponses
Avatar
leno
Bonsoir a tous et a toutes:
Je suis un nouveau bleu en java j'essai de faire un petit
exercice qui consiste a remplacer un caractere par un autre dans une chaine
de caractere mon code est le suivant :

import java.lang.*;
public class remplacerUneChaine {

/** Creates a new instance of remplacerUneChaine */
public String remplacer(String A,char b,char c) {
StringBuffer temp=new StringBuffer(A);
for(int i=0;i<A.length();i++){
if (temp.charAt(i)==b);
temp.setCharAt(i, c);
}
return temp.toString();
}

/**
* @param args the command line arguments
*/
public void main(String[] args) {
char b='o';
char c='e';
String A="";
System.out.println(" cesissez un mots :");
A=Clavier.readString();
String B=remplacer( A,'o','e');
System.out.println(B);
}

}
mais ya qlque choses de louche qui me renv une erreur pouvez vous m'aider
merci.

3 réponses

1 2
Avatar
koni
oliv wrote:
leno wrote:

Bonsoir a tous et a toutes:
Je suis un nouveau bleu en java j'essai de faire un petit
exercice qui consiste a remplacer un caractere par un autre dans une
chaine
de caractere mon code est le suivant :

import java.lang.*;


//inutile

public class remplacerUneChaine {

/** Creates a new instance of remplacerUneChaine */


// NON !

public String remplacer(String A,char b,char c) {


// devrait être static dans ce contexte

StringBuffer temp=new StringBuffer(A);
for(int i=0;i<A.length();i++){
if (temp.charAt(i)==b);
temp.setCharAt(i, c);
}
return temp.toString();
}

/**
* @param args the command line arguments
*/
public void main(String[] args) {


// static

char b='o';
char c='e';
String A="";
System.out.println(" cesissez un mots :");
A=Clavier.readString();


// ???

String B=remplacer( A,'o','e');
System.out.println(B);
}

}
mais ya qlque choses de louche qui me renv une erreur pouvez vous m'aider
merci.


Dans ce cas là mieux vaut donner l'erreur(s!) de compil ou la trace
d'exception.

Il serait bon de jeter un coup d'oeil sur un tutorial d'introduction à
Java et/ou OOP.

Voilà /une/ possibilité :

import java.io.*;

public class Essai {
public static void main(String[] args) {
char cold = 'o';
char cnew = 'e';
String s1 = "";

try {
System.out.print("Entrer une chaine : ");
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
s1=in.readLine();
String s2 = remplacer( s1, cold, cnew);
System.out.println(s2);
}
catch (Exception ex) { ex.printStackTrace();}
}

public static String remplacer(String A, char c1, char c2) {
StringBuffer temp = new StringBuffer(A);
for (int i=0 ; i<A.length() ; i++) {
if (temp.charAt(i)=Á)
temp.setCharAt(i, c2);
}
return temp.toString();
}
}



Etant moi meme débutant j'en profite pour poser une question.
Pourquoi la methode remplacer est affublé du "modificateur" (?) static ?

Merci,
koni


Avatar
Cem
Le 25-02-2004, koni a écrit :
Etant moi meme débutant j'en profite pour poser une question.
Pourquoi la methode remplacer est affublé du "modificateur" (?) static ?

Ça en fait une méthode de classe. Ce type de méthode peut être appelé

sans créer une instance de classe.

Exemple:
class ExempleClasse {
public static int methodeDeClasse(int p) {
...
}
public int methodeObjet(int p) {
...
}
}

Pour utiliser methodeObjet, il faut faire
ExempleClasse x = new ExempleClasse();
a=x.methodeObjet(b);

Alors que methodeDeClasse est utilisable sans créer une instance de
ExempleClasse.
a=ExempleClasse.methodeDeClasse(b);

Il est conseillé dans les livres de faire précéder le nom des méthodes
de classe du nom de la classe. On peut les préfixer du nom d'un objet de
la classe, mais c'est trompeur puisque cet objet n'est en aucun cas
utilisé par la méthode de classe.

En gros, là où une méthode n'a aucun besoin de s'appliquer à un objet de
la classe, il vaut mieux faire une méthode de classe.

Avatar
oliv
koni wrote:
Pourquoi la methode remplacer est affectée du "modificateur" (?) static ?
Car elle n'est pas invoquée sur une instance d'objet (ou comme un

message envoyé à un objet) selon une constuction

monObjet.faisQuelquechose();

Le modificateur static la définit en tant que méthode de classe et non
d'instance.

Voir le tutorial sur java.sun.com.

--
oliv

1 2