48 votes

Insérer une valeur dans une chaîne de caractères à une certaine position ?

Je cherche à placer une valeur d'une zone de texte, disons "12", à un certain endroit dans une variable temp string. Puis je veux placer une autre valeur après, disons "10", mais avec un : entre les deux, comme un temps. Les deux valeurs proviennent de zones de texte et sont validées, elles ne peuvent donc être que des chiffres.

93voto

ahkvk Points 1040

Si vous souhaitez simplement insérer une valeur à une certaine position dans une chaîne de caractères, vous pouvez utiliser la fonction String.Insert méthode :

public string Insert(int startIndex, string value)

Ejemplo:

"abc".Insert(2, "XYZ") == "abXYZc"

40voto

Mehrdad Points 70493

Vous ne pouvez pas modifier les chaînes de caractères ; elles sont immuables. Vous pouvez faire ceci à la place :

txtBox.Text = txtBox.Text.Substring(0, i) + "TEXT" + txtBox.Text.Substring(i);

7voto

Andy Points 187

Si vous avez une chaîne de caractères et que vous connaissez l'indice auquel vous voulez placer les deux variables dans la chaîne de caractères, vous pouvez utiliser :

string temp = temp.Substring(0,index) + textbox1.Text + ":" + textbox2.Text +temp.Substring(index);

Mais s'il s'agit d'une ligne simple, vous pouvez l'utiliser de cette façon :

string temp = string.Format("your text goes here {0} rest of the text goes here : {1} , textBox1.Text , textBox2.Text ) ;"

4voto

kid Points 291
var sb = new StringBuilder();
sb.Append(beforeText);
sb.Insert(2, insertText);
afterText = sb.ToString();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X