Как мне разбить строку на массив?

2

Я хочу разбить строку на массив. Строка выглядит следующим образом:

: привет: mr.zoghal:

Я хотел бы разбить его следующим образом:

hello mr.zoghal

Я пробовал...

string[] split = string.Split(new Char[] {':'});

и теперь я хочу:

  string  something = hello ;
  string  something1 = mr.zoghal;

Как я могу это сделать?

  • 0
    С вашими последними изменениями уже не ясно, о чем вы просите.
Теги:
split

3 ответа

2
Лучший ответ

Для вашего первоначального запроса:

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"

оба оцениваются как истинные. Это то, что вы ищете?

  • 0
    Есть ли причина, по которой вы делаете String.IsNullOrEmpty(s) == false а не !String.IsNullOrEmpty(s) ?
  • 0
    Личное предпочтение. Нет никаких веских причин, кроме того, что я предпочитаю, потому что я пропустил слишком много "!" В мои дни.
Показать ещё 2 комментария
3

String myString = ": hello: mr.zoghal:";

string[] split = myString.Split(':');

string newString = string.Empty;

foreach(String s in split) {
 newString += "something = " + s + "; ";
}

Ваш результат будет: что-то = привет; something = mr.zoghal;

  • 0
    Это создаст newString == "что-то =; что-то = привет; что-то = mr.zoghal; что-то =;"
  • 1
    Хороший ответ, хотя я бы не выбрал конкатенацию новой строки в качестве образца. лучше пойти так: string что-то = split [0]; строка что-то1 = разделить [1]; Я бы сказал, что изучение массивов должно быть приоритетом, а не семантикой string.split.
Показать ещё 1 комментарий
1

Это намного проще. Существует уже вариант.

string mystring = ":hello:mr.zoghal:";
string[] split = mystring.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню