Все элементы до последней запятой в строке в c # - PullRequest
4 голосов
/ 11 июля 2011

Как я могу получить все элементы до запятой (,) в строке в C #? Например, если моя строка скажет

string s = "a,b,c,d";

тогда я хочу, чтобы все элементы были до d, т. Е. До последней запятой. Так что мой новый крик строки выглядит как

string new_string = "a,b,c";

Я попытался разделить, но с этим я могу только один конкретный элемент за раз.

Ответы [ 4 ]

9 голосов
/ 11 июля 2011
string new_string = s.Remove(s.LastIndexOf(','));
6 голосов
/ 11 июля 2011

Если вы хотите все до последнего вхождения, используйте:

int lastIndex = input.LastIndexOf(',');
if (lastIndex == -1)
{
    // Handle case with no commas
}
else
{
    string beforeLastIndex = input.Substring(0, lastIndex);
    ...
}
0 голосов
/ 26 июня 2014

Вы также можете попробовать:

string s = "a,b,c,d";
string[] strArr = s.Split(',');

Array.Resize(strArr, Math.Max(strArr.Length - 1, 1))

string truncatedS = string.join(",", strArr);
0 голосов
/ 11 июля 2011

Используйте следующее регулярное выражение: "(.*),"

Regex rgx = new Regex("(.*),");
string s = "a,b,c,d";

Console.WriteLine(rgx.Match(s).Groups[1].Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...