Insérer un caractère dans un string

Résolu
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
bon c'est sûrement un truc tout bête mais je cherche comment faire pour insérer dans un string un même caractère à un intervalle régulier !

J'avais fait quelque chose comme ça :
public class carac

{

  public static void main(String[] args)
  {
	  String test = "blablablablablablabla";
	  int longueur = test.length();
	  for ( int i = 0; i > longueur ; i++ )
	  {
	         test = test + test.charAt(i);
	         if (i==2)
	         {
	        	test += "\n" ;
	         }
	  }
	  System.out.println(test);
  }
}


Mais là rien ne se passe, et je ne comprend pas pourquoi (enfin y'a le blabla qui apparait mais sans le retour à la ligne).
De plus ce code ne marcherait que pour i=2, or je voudrais le faire tous les 2 caractères par exemple.

Merci de m'éclairer !
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Rien ne se passe à cause de ton test de boucle "i > longueur" qui est faux...

Remarque : ce que tu fais ce n'est pas de l'insertion de caractères, mais de la concaténation de chaîne de caractères ! Si tu veux vraiment faire de l'insertion, utilise un StringBuilder et la méthode insert(int,char).
1
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
 
Ce que je comptais faire en fait, c'est ajouter les caractères de mon string un par un et au bout d'un certain nombre je rajoute mon retour à la ligne ! Puis je continue d'ajouter les caractères.
Je ne connais pas l'utilisation de la méthode insert, peux-tu m'éclaircir s'il te plait ?

Merci.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est simple, tu indiques en premier argument la position où tu veux insérer, et en deuxième argument le caractère que tu veux insérer.

Evidemment, cela ne s'applique qu'à un StringBuilder (ou un StringBuffer) qui sont modifiables contrairement aux String qui ne peuvent jamais être modifiés.

StringBuilder sb = new StringBuilder("abc");
sb.insert(2,'-');
System.out.println(sb);
0
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
 
Ca marche, mais comment faire pour que cela s'applique plusieurs fois ?
Par exemple :
StringBuilder sb = new StringBuilder("abcabcabcabc"); 
sb.insert(2,'-'); 
System.out.println(sb);


Pour que ça devienne
ab-ca-bc-ab-ca-bc ??

J'ai essayé avec
for (int i =0; i<longueur; i++)
	  {
	  sb.insert(2,' ');  
	  }

J'ai droit à un espace de la longueur du texte !
Merci !
0
Vitaldix Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   6
 
J'ai aussi fait ça qui marche un peu mieux :
for (int i =0; i<longueur; i=i+2)
	  {
	  sb.insert(i,' ');
	  
	  }
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Il faut que tu te serves de ta boucle, et remplacer ton 2, par 2*i par exemple, sinon forcément tu vas toujours insérer ton caractères au même endroit...
0