Caractère vide dans chaine JAVA
Toma421
-
Toma421 -
Toma421 -
Bonjour,
Dans mon code en JAVA, j'ai un String mot , et le la variable char lettreMot3 correspondant au carctère i+3 de ce mot.
Je voudrait faire un traitement en vérifiant si et y compris lettreMot3 est un caractère non-existant dans ma chaine.
Toute ces solutions ne fonctionnent pas :
Comment faire ? Merci de m'aider ...
Dans mon code en JAVA, j'ai un String mot , et le la variable char lettreMot3 correspondant au carctère i+3 de ce mot.
Je voudrait faire un traitement en vérifiant si et y compris lettreMot3 est un caractère non-existant dans ma chaine.
Toute ces solutions ne fonctionnent pas :
if ( lettreMot3 == '' ) if ( lettreMot3 == ' ' ) if ( lettreMot3 == "" ) if ( lettreMot3 == " " ) if ( lettreMot3 == 0 ) if ( lettreMot3 == '\0' )
Comment faire ? Merci de m'aider ...
A voir également:
- Caractere vide
- Espace insécable Word : comment insérer des espaces incassables - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Supprimer page word vide - Guide
4 réponses
Effectivement, cela me semble très correct et très logique ...
... mais ça ne marche pas .. !
snif merci quand même
... mais ça ne marche pas .. !
snif merci quand même
Enoncé : Remplacer, sauf si ils sont suivis par une voyelle ou 1, 2 ou 4 :
- an par 1
- am par 1
- en par 1
- em par 1
Conctat : Tout marche nickel, les deux lettres se remplacent bien à chaque fois , SAUF lorsque le mot écrit se TERMINE par "an" , "am" , "en" , "em".
Dans ce cas là, les lettres ne sont pas remplcé par 1 , comme cela devrait être !
Code :
Merci.
- an par 1
- am par 1
- en par 1
- em par 1
Conctat : Tout marche nickel, les deux lettres se remplacent bien à chaque fois , SAUF lorsque le mot écrit se TERMINE par "an" , "am" , "en" , "em".
Dans ce cas là, les lettres ne sont pas remplcé par 1 , comme cela devrait être !
Code :
public static void main(String[] args) { String mot = Clavier.lireString(); int longueur = mot.length(); for (int i = 0 ; i < longueur -2 ; i++) { char lettreMot = mot.charAt(i); char lettreMot2 = mot.charAt(i+1); char lettreMot3 = mot.charAt(i+2); if ( lettreMot == 'a' || lettreMot == 'e' ) { if ( lettreMot2 == 'm' || lettreMot2 == 'n' ) { if ( lettreMot3 != 'a' && lettreMot3 != 'e' && lettreMot3 != 'i' && lettreMot3 != 'o' && lettreMot3 != 'u' && lettreMot3 != 'y' && lettreMot3 != '1' && lettreMot3 != '2' && lettreMot3 != '4' || mot.indexOf(lettreMot3) == -1 ) { StringBuffer motDeTravail; motDeTravail = new StringBuffer(mot); motDeTravail.replace (i, i+2, "1"); mot = new String(motDeTravail); longueur = mot.length(); } } } System.out.println(mot); }
Merci.
Tu peux peut-être gérer ce dernier cas comme ceci :
Quelque chose de bizarre dans ton code c'est ton motDeTravail... tu peux faire directement
for (int i = 0 ; i <= longueur-2 ; i++) // inférieur ou égal { // si lettreMot3 est après le dernier caractère on lui affecte arbitrairement un caractère dont on est sûr qu'il sera remplacé par l'algorithme char lettreMot3 = (i==longueur-2) ? '¤' : mot.charAt(i+2);
Quelque chose de bizarre dans ton code c'est ton motDeTravail... tu peux faire directement
mot = mot.replace(i,i+2,"1");
En ce qui concerne le "motDeTravail" qui est un StringBuffer, cela marche très bien , mais ça n'aurait pas fonctionné avec un mot.replace dans ce cas là car cela est dans un IF et cette syntaxe ne s'occupe pas d'éventuelles conditions.
(c'est le but justement de mon TP).
Par contre, pour ta syntaxe avec le la'interrogation, cela me parait un peu bizarre ..
(c'est le but justement de mon TP).
Par contre, pour ta syntaxe avec le la'interrogation, cela me parait un peu bizarre ..