Форматирование подстроки, чтобы получить все символы после первого подчеркивания, но перед вторым подчеркиванием? - PullRequest
5 голосов
/ 28 декабря 2011

например, у нас есть эта строка:

  • hello_my name_is_bob

и хотите получить только часть моего имени в строке, как я могу получить это просто с помощью подстроки?

Кроме того, формат в примере всегда будет одинаковым, поэтому мне просто нужно получить то, что находится после первого подчеркивания, но перед вторым подчеркиванием.

Ответы [ 3 ]

14 голосов
/ 28 декабря 2011

string.Split подойдет для этого, нет необходимости углубляться в Substring:

var parts = "hello_my name_is_bob".Split('_');

string name = parts[1] // == "my name";

Или в один слой (хотя я считаю это менее читабельным):

string name = "hello_my name_is_bob".Split('_')[1];
2 голосов
/ 28 декабря 2011
"hello_my name_is_bob".Split('_').Skip(1).First();
1 голос
/ 28 декабря 2011

Если вы точно знаете, что у вас есть два подчеркивания, используйте этот код:

var pos = str.IndexOf('_');
var last = str.IndexOf('_', pos+1);
var res = str.Substring(pos+1, last-pos-1);

Это не удастся, если число подчеркиваний меньше двух.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...