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.

10 réponses

1 2
Avatar
Daniel MALIK
le premier caractère d'une chaîne est 1 et non O il me semble
commence avec i=1;

profites-en pour corriger la phôthe d'aurtaugraffe :
saisissez au lieu de cesissez.
"leno" a écrit dans le message de
news:403bcab6$0$29946$
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.





Avatar
leno
Monsieur MALIK bonsoir:
Merci pour votre reponse et pout la phothe d'aurtaugraffe, parcontre pour le
i=1 j'en suis pas sur ,
je m'explique :
la methode charAt de la classe String permet d'acceder à un caractère de
rang donné d'une chaine(le premier caractére porte le rang 0).ainsi, avec:
String S="MALIK";
S.charAT(0)correspond au caractere 'M',
S.charAT(1)correspond au caractere 'A',
S.charAt(2)correspond au caractere 'L',
ainsi de suite....
le debat est ouvert .....
Cordialement .

"Daniel MALIK" a écrit dans le message de
news:c1gjiq$l2n$
le premier caractère d'une chaîne est 1 et non O il me semble
commence avec i=1;

profites-en pour corriger la phôthe d'aurtaugraffe :
saisissez au lieu de cesissez.
"leno" a écrit dans le message de
news:403bcab6$0$29946$
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.









Avatar
Cem
Le 24-02-2004, leno a écrit :
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 :
[...]
mais ya qlque choses de louche qui me renv une erreur pouvez vous m'aider
merci.

Bonsoir,

Voilà un code transformé qui marche.
Peut-être pas idéal, je débute aussi!

import java.lang.*;
import java.io.IOException;

public class remplacerUneChaine {

/** Creates a new instance of remplacerUneChaine */
public static String remplacer(String A,char b,char c) {
// ajout static pour pouvoir être utilisé
// sans créer une instance
StringBuffer temp=new StringBuffer(A);
for(int i=0;i<A.length();i++){
if (temp.charAt(i)==b) // pas de ; au bout
temp.setCharAt(i, c);
}
return temp.toString();
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
char b='o';
char c='e';
byte[] buffer=new byte[100]; // buffer de lecture
int n=0; // nb de caractères lus
System.out.print("Saisissez un mot : ");
try {
n=System.in.read(buffer);
} catch (IOException e) {
System.out.println("I/O Erreur : " + e.getMessage());
return;
}
String A = new String(buffer,0,n-1);
String B=remplacer( A,'o','e');
System.out.println(B);
}

}

Avatar
Régis Troadec
Salut,

"Daniel MALIK" a écrit dans le message de news:
c1gjiq$l2n$
le premier caractère d'une chaîne est 1 et non O il me semble
commence avec i=1;


Non, ca commence à 0.

a+, Regis

Avatar
Régis Troadec
Salut,

"leno" a écrit dans le message de news:
403bcab6$0$29946$
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();
}


remplacer() me parait bien...

/**
* @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();


C'est quoi Clavier ?

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.



C'est quoi l'erreur ?

a+, Regis

Avatar
Cem
Le 24-02-2004, leno a écrit :
le premier caractère d'une chaîne est 1 et non O il me semble
commence avec i=1;

[...] pour le

i=1 j'en suis pas sur ,
je m'explique :
la methode charAt de la classe String permet d'acceder à un caractère de
rang donné d'une chaine(le premier caractére porte le rang 0).ainsi, avec:
String S="MALIK";
S.charAT(0)correspond au caractere 'M',
le debat est ouvert .....
Ça commence à 0.

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#charAt(int)
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringBuffer.html#charAt(int)


Avatar
oliv
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();
}
}

--
oliv

Avatar
Régis Troadec
Re,

J'ai finalement trouve des betises apres une relecture moins rapide,

"leno" a écrit dans le message de news:
403bcab6$0$29946$
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) {


Si tu l'appelles dans le main, sans construire d'objet, ca vaut mieux de
declarer
ta methode en static :

public static 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);


Pq le ; avec le if ? c'est pas du Shell :-)
Consequence : remplace tous les caracteres par c,
le setCharAt etant appele a chaque tour de boucle.

Préfères ceci pour ta boucle :

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


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


main est le "thread principal", sa methode main() doit par consequent etre
static aussi :

public static 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.



HTH
a+, Regis

Avatar
leno
Rebonsoir à tous:

Merci beaucoup pour vos réponses qui sont aussi intéressantes les unes que
les autres et qui méritent une bonne réflexion encore une fois mille merci.

"leno" a écrit dans le message de
news:403bcab6$0$29946$
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(" saisissez 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.





Avatar
Bassem Khadige
t'as vu ds String.java ? y a des méthodes qui le font automatiquement dy
style : replace, replaceAll .. jete un coup d'oeil A+
"leno" a écrit dans le message de
news:403be35e$0$29961$
Rebonsoir à tous:

Merci beaucoup pour vos réponses qui sont aussi intéressantes les unes que
les autres et qui méritent une bonne réflexion encore une fois mille
merci.


"leno" a écrit dans le message de
news:403bcab6$0$29946$
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(" saisissez 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.









1 2