разделять строку после запятой и до окончания строки- asp.net c#

#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)