Insérer un caractère dans un string

Résolu/Fermé
Vitaldix Messages postés 116 Date d'inscription vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 - 24 févr. 2013 à 13:05
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 24 févr. 2013 à 15:23
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 févr. 2013 à 13:11
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 vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
24 févr. 2013 à 14:07
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 févr. 2013 à 14:14
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 vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
Modifié par Vitaldix le 24/02/2013 à 14:26
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 vendredi 9 novembre 2012 Statut Membre Dernière intervention 18 août 2013 6
24 févr. 2013 à 14:29
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
24 févr. 2013 à 14:29
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