2011-01-28 58 views
16

Estoy buscando para colocar un valor de un cuadro de texto digamos "12" a un lugar determinado en una variable de cadena de temperatura. Luego quiero colocar otro valor después de que diga "10" pero con un: entre medio como un tiempo. Ambos provienen de cuadros de texto y se validan para que solo puedan ser números.¿Insertar valor en una cadena en una posición determinada?

Respuesta

21

No puede modificar cadenas; ellos son inmutables. Usted puede hacer esto en su lugar:

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

que debería funcionar. No puedo simplemente ir "temp = txtb.Text +": "+ txta.Text;" ? –

+0

Oh, ciertamente puedes. Usted simplemente no puede modificar la cadena original. – Mehrdad

+0

Ah, tengo. Gracias Señor. –

6

Si usted tiene una cadena y que conoce el índice que desea poner a las dos variables en la cadena que puede utilizar:

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

Pero si se trata de un simple línea que se puede utilizar de esta manera:

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

Si lo que desea insertar un valor en una determinada posición en una cadena, se puede utilizar el método de String.Insert:

public string Insert(
    int startIndex, 
    string value 
) 

Ejemplo:

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

Probablemente deberías notar aquí que esto en realidad no lo inserta en la cadena a la que lo estás llamando. El método devuelve otra cadena con el texto especificado agregado en ese índice, pero no modifica la cadena original. – Grungondola

+1

El uso correcto es: cadena Texto = "abc"; Texto = Texto.Insertar (2, "XYZ"); – Paulo

Cuestiones relacionadas