JAVA

amine08 Messages postés 7 Statut Membre -  
 Bercolly -
Bonjour,
je viens de passer un exam et javais des doutes sur mon code je voulais savoir si il est bon ou pas
en faite l'ennoncé demande de rajouter le mot "AV" a chaque fois il rencontre une voyelle voici mon code

public class Partiel {

public String ChaineAtraduire="java";

public String ChaineArajouter="av";

public String ChaineVoyelles="aeiouy";

public String ChaineConsonnes="bcdfghljklmnpqrs....";

public boolean Voyelle(){
boolean ok=false;
String c=null;
for (int i=0;i<ChaineVoyelles.length();i++)
{
if (c.equals(ChaineVoyelles.charAt(i)))
{
ok = true;
}
}

return ok;

}

public boolean Consonne(){
boolean ok=false;
String c=null;
for (int i=0;i<ChaineConsonnes.length();i++)
{
if (c.equals(ChaineConsonnes.charAt(i)))
{
ok = true;
}
}

return ok;

}
public String Traduire(String c){

for(int k=0;k<ChaineAtraduire.length();k++)
{
if (Voyelle())

ChaineAtraduire =ChaineAtraduire.concat(ChaineArajouter);
}
return ChaineAtraduire;
}

}

Merci de me repondre dans le plus tot possible
A voir également:

1 réponse

Bercolly
 
/*
* Avec Java, dès que l'on fait des opérations sur des chaines on utilise le fameux package regexp !
* Si tu n'as pas vu cela en cours, c'est dommage.
*
* Voila en quelques lignes de code la solution à ton exam en utilisant une regexp!
*
*
* A+ bon courage
*/
package test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

public static void main(String[] args){

Pattern p = Pattern.compile("[aeiouy]");
String s = "java je t'adore";
Matcher m = p.matcher(s);
s = m.replaceAll("AV");
System.out.println(s);

}
}
0
amine08 Messages postés 7 Statut Membre
 
re
merci pour ta reponse, mais le probleme c'est que l'ennocé m'exige a faire les trois methodes
voyelles()
consonne()
traduire(String)
0
Bercolly > amine08 Messages postés 7 Statut Membre
 
Ouais, d'accord, mais cel an'"tait pas précisé.

Donc revenons à ton code il ne marche pas parce que :

tu initialises
0
Bercolly > amine08 Messages postés 7 Statut Membre
 
In marche pas parce que :
dans ta méthode

public boolean Voyelle(){
boolean ok=false;
String c=null;
for (int i=0;i<ChaineVoyelles.length();i++)
{
if (c.equals(ChaineVoyelles.charAt(i)))
{
ok = true;
}
}

la variable c est à null -> NullPointer Exception

De plus tu ne peux pas comparer un string et un char ,
et il t emanque un paramètre

Les deux méthodes voyelle consonnes pourraient être ainsi :

public boolean Voyelle(char c) {
return ChaineVoyelles.indexOf(c) == -1 ? false : true;
}

public boolean Consonne(char c) {
return !Voyelle(c);
}

Pour la méthode traduire, ton code boucle car tu modifies la variable en même temps que tu examnies chaque caractère ...

La méthode pourrait être ainsi :

public String Traduire(String chaineATraduire) {
String resu = "";
for (int k = 0; k < chaineATraduire.length(); k++) {
if (Voyelle(chaineATraduire.charAt(k))) {
resu = resu.concat("av");
}
else
resu += chaineATraduire.charAt(k);
}
return resu;
}


Au final le programme est le suivant :

package test;

public class Partiel {

public String voyelles = "aeiouy";
//public String consonnes = "bcdfghljklmnpqrs...."; inutile ?

public static void main(String[] args) {
Partiel p = new Partiel();
p.Traduire("java je t'adore ...");
}

public boolean isVoyelle(char c) {
return voyelles.indexOf(c) == -1 ? false : true;
}

public boolean isConsonne(char c) {
return !isVoyelle(c);
}

public String Traduire(String chaineATraduire) {
String resu = "";
for (int k = 0; k < chaineATraduire.length(); k++) {
if (isVoyelle(chaineATraduire.charAt(k))) {
resu = resu.concat("av");
} else {
resu += chaineATraduire.charAt(k);
}
}
// retourner le résultat ...
return resu;
}
}
0