#c# #asp.net
#c# #asp.net
Вопрос:
У меня есть строка типа
ишан, обучение
Я хочу разделить строку после «,» то есть я хочу, чтобы вывод был следующим
Обучение
ПРИМЕЧАНИЕ: «,» не имеет фиксированного индекса, поскольку строковое значение перед «,» отличается в разное время.
например, ишант, марсела ИЛИ ишу, понда ИЛИ амнарайан, мапуса и т.д…
Из всех приведенных выше строк мне нужна только часть после «,»
Комментарии:
1. Я не уверен, что вы хотите получить второе слово. Я имею в виду, если у вас есть «a,b, c, d», вы хотите получить «b, d»?
Ответ №1:
Вы можете использовать String.Split
:
string[] tokens = str.Split(',');
string last = tokens[tokens.Length - 1]
Или, немного проще:
string last = str.Substring(str.LastIndexOf(',') 1);
Комментарии:
1. Или вы можете захотеть использовать Linq: str.Split(‘,’).LastOrDefault()
2. @Kobi Благодарю за этот очень простой, но пока лучший подход! Я хорошо использовал
str.Substring(str.LastIndexOf(',') 1);
в своем проекте, который работает просто отлично! еще раз спасибо!
Ответ №2:
var arr = string.Split(",");
var result = arr[arr.length-1];
Комментарии:
1. Это приведет только к последнему элементу. Это то, чего они хотят? Из названия следует, что они соединяют все после запятой. Что, если строка равна 1,2,3,4,5?
Ответ №3:
sourcestring.Substring(sourcestring.IndexOf(','))
. Возможно, вы захотите проверить sourcestring.IndexOf(',')
наличие -1
строк без ,
.
Ответ №4:
Я знаю, что на этот вопрос уже был дан ответ, но вы можете использовать linq:
string str = "1,2,3,4,5";
str.Split(',').LastOrDefault();
Ответ №5:
Хотя есть несколько комментариев, в которых упоминается проблема обнаружения нескольких запятых, похоже, что нет никакого упоминания о решении для этого:
string input = "1,2,3,4,5";
if (input.IndexOf(',') > 0)
{
string afterFirstComma = input.Split(new char[] { ',' }, 2)[1];
}
Это сделает afterFirstComma
равным «2,3,4,5»
Ответ №6:
Используйте String.Split(",")
присвоите результат в массиве строк и используйте то, что вы хотите.
Ответ №7:
Вот версия VB. Я уверен, что ее легко перевести на C #, хотя
Dim str as string = "ishan,training"
str = str.split(",")(1)
return str
Комментарии:
1. Это работает для примера выше, но не учитывает строку с несколькими запятыми
2. Ах, извините, это могло бы быть лучше:.Split(«,»).Reverse(0)