¿Cómo divido una cadena en una matriz?
Pregunta
Quiero dividir una cadena en una matriz. La cadena es la siguiente:
: hola: mr.zoghal:
Me gustaría dividirlo de la siguiente manera:
hola mr.zoghal
Lo intenté ...
string[] split = string.Split(new Char[] {':'});
y ahora quiero tener:
string something = hello ;
string something1 = mr.zoghal;
¿Cómo puedo lograr esto?
Solución
Para su solicitud original:
string myString = ":hello:mr.zoghal:";
string[] split = myString.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
var somethings = split.Select(s => String.Format("something = {0};", s));
Console.WriteLine(String.Join("\n", somethings.ToArray()));
Esto producirá
something = hello;
something = mr.zoghal;
de acuerdo a su solicitud.
También, la línea
string[] split = string.Split(new Char[] {':'});
no es legal C #. String.Split
es un método a nivel de instancia, mientras que su código actual está intentando invocar Split
en una instancia llamada string
(no es legal como " ; cadena
" es una palabra clave reservada) o está intentando invocar un método estático llamado Split
en la clase Cadena
(no existe tal método ).
Edit: No está exactamente claro lo que estás preguntando. Pero creo que esto te dará lo que quieres:
string myString = ":hello:mr.zoghal:";
string[] split = myString.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
string something = split[0];
string something1 = split[1];
Ahora tendrás
something == "hello"
y
something1 == "mr.zoghal"
ambos evalúan como verdadero. ¿Es esto lo que estás buscando?
Otros consejos
String myString = ": hello: mr.zoghal: " ;;
string[] split = myString.Split(':');
string newString = string.Empty;
foreach(String s in split) {
newString += "something = " + s + "; ";
}
Tu salida sería: algo = hola; algo = mr.zoghal;
Es mucho más fácil que eso. Ya hay una opción.
string mystring = ":hello:mr.zoghal:";
string[] split = mystring.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries);