Я хочу разбить строку на массив. Строка выглядит следующим образом:
: привет: mr.zoghal:
Я хотел бы разбить его следующим образом:
hello mr.zoghal
Я пробовал...
string[] split = string.Split(new Char[] {':'});
и теперь я хочу:
string something = hello ;
string something1 = mr.zoghal;
Как я могу это сделать?
Для вашего первоначального запроса:
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()));
Это приведет к созданию
something = hello;
something = mr.zoghal;
в соответствии с вашим запросом.
Кроме того, строка
string[] split = string.Split(new Char[] {':'});
не является законным С#. String.Split
- это метод уровня экземпляра, тогда как ваш текущий код либо пытается вызвать Split
в экземпляре с именем string
(не является законным, так как "string
" является зарезервированным ключевым словом) или пытается вызвать статический метод названный Split
в классе string
(такого метода нет).
Изменить: не совсем понятно, что вы просите. Но я думаю, что это даст вам то, что вы хотите:
string myString = ":hello:mr.zoghal:";
string[] split = myString.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
string something = split[0];
string something1 = split[1];
Теперь у вас будет
something == "hello"
и
something1 == "mr.zoghal"
оба оцениваются как истинные. Это то, что вы ищете?
String.IsNullOrEmpty(s) == false
а не !String.IsNullOrEmpty(s)
?
String myString = ": hello: mr.zoghal:";
string[] split = myString.Split(':');
string newString = string.Empty;
foreach(String s in split) {
newString += "something = " + s + "; ";
}
Ваш результат будет: что-то = привет; something = mr.zoghal;
Это намного проще. Существует уже вариант.
string mystring = ":hello:mr.zoghal:";
string[] split = mystring.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries);