Ajout d'espace dans un String

Résolu/Fermé
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 - 11 mars 2010 à 20:26
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 - 13 mars 2010 à 12:00
Bonjour,
voila j'ai une phrase : "je suis la réincarnation de dieu"
je souhaiterai faire en sorte que dans la phrase, j'ai 16 caractères par ligne. trop facile me dirai vous.
oui mais voila, je souhaite aussi que les mots ne soit pas coupé genre :

je suis la reinc
arnation de dieu

mais plutot :

je suis la
reincarnation de
dieu

vous voyez ???
aussi, je souhaite que dans ma chaine de caractère soit rempli par des espace genre :

je suis la******
reincarnation de
dieu

car en faite ce code servira pour un afficheur et celui ne gere pas les retour a la ligne alors un remplissage d'espace simpose.
j'ai un début de code. le voici :

public class Main {
public static void main(String[] args) {
String message = "je suis la réincarnation de dieu";
int pointeur = 0;
int compteur = 0;
while(pointeur < message.length()){
pointeur += 16;
if(pointeur < message.length()){
if(message.charAt(pointeur)!= ' ' && message.charAt(pointeur + 1) != ' '){
pointeur -= 1;
compteur += 1;
} else if(message.charAt(pointeur) == ' '){

}
}
}
}
}

aidez moi svp. merci d'avance.

7 réponses

UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
11 mars 2010 à 21:54
une proposition en français (chuis pas à l'aise en C)

- morceler la phrase en utilisant l'espace (en php: explode(string, carac) ou split())
- initialiser le compteur pour les index du tableau créé par la fonction split
- initialiser le compteur de caractères
- composer la ligne en concaténant les morceaux en mesurant leur longueur et augmenter le compteur d'autant
- tant qu'on ne dépasse pas une longueur de 16 on continue de concaténer
- si compteur est plus grand que 16 enlever le dernier morceau et diminuer compteur et ajouter des d'espaces jusqu'à que compteur égal 16
- réinitialiser compteur et continuer à concaténer...
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
11 mars 2010 à 22:30
je code cela en java. merci de ton aide UgllyBoy ^^
je donne mon code :

public class Main {
public static void main(String[] args) {
String message = "je suis la réincarnation de dieu";
System.out.println("la phrase : \n" + message);
System.out.println("devient :");
char[] tabMessage = message.toCharArray();
boolean ajout = false;
int pointeur = 0;
int compteur = 0;
while (pointeur <= tabMessage.length) {
pointeur += 16;
if (pointeur < tabMessage.length) {
if (tabMessage[pointeur] != ' ' && tabMessage[pointeur + 1] != ' ') {
while (tabMessage[pointeur] != ' ') {
pointeur -= 1;
compteur += 1;
}
}
for (int i = 0; i < compteur; i++) {
tabMessage[pointeur + i] = '*';
}
pointeur += compteur;
pointeur += 16;

}
}
System.out.println(tabMessage);
}
}

maintenant voici le résultat :

la phrase :
je suis la réincarnation de dieu
devient :
je suis la******arnation de dieu

les espace fonctionnent seulement il me les mets sur les autres lettres.
de plus, pas de retour a la ligne lol.
une idée ???
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
11 mars 2010 à 22:41
en html l'espace non sécable a pour code nbsp; avec & devant (je suis obligé de te le mettre comme cela, sinon l'affichage du forum va mettre un espace à la place)

alors essayes
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
11 mars 2010 à 23:13
je ne suis pas en html les gars lol mais en java.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
11 mars 2010 à 23:30
je croyais que te ne voulais pas de retour à la ligne....

ton code à l'air ok, cherche la fonction "split" et tout sera nickel.

tiens une recherche sur google donne cela:
https://www.java-examples.com/java-string-split-example
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
12 mars 2010 à 00:07
exacte oui je ne veux pas de retour a la ligne lol excuser moi. c'est parce que j'ai l'habitude de bosser sur l'afficheur donc...
mais je ne souhaite pas de retour a la ligne.
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
13 mars 2010 à 12:00
bon j'ai trouvé la solution.
1) conversion String en StringBuffer
2) utilisation de la méthode insert() de la classe StringBuffer.
merci a alain_42 et UgglyBoy
0