Извлекает подстроку из строки, пока не найдет запятую

Я строю страницу и хотел бы знать, как извлечь подстроку из строки, пока не найдет запятую в ASP.Net С#. Может кто-нибудь помочь, пожалуйста?

Ответы

Ответ 1

substring = str.Split(',')[0];

Если str не содержит запятых, подстрока будет такой же, как str.

РЕДАКТИРОВАТЬ: как и в большинстве случаев, производительность этого будет зависеть от краев. Если есть много и много запятых, это создаст много экземпляров String в куче, которые не будут использоваться. Если это строка с 5000 символами с запятой около начала, метод IndexOf + Substring будет работать намного лучше. Однако для разумно малых строк этот метод будет работать нормально.

Ответ 2

var firstPart = str.Split(new [] { ',' }, 2)[0]

Второй параметр указывает максимальное количество деталей. Указание 2 гарантирует, что производительность прекрасна, даже если есть много и много запятых.

Ответ 3

myString = myString.Substring(0,myString.IndexOf(','));

Ответ 4

Вы можете использовать IndexOf(), чтобы узнать, где находится запятая, а затем извлечь подстроку. Если вы уверены, что у вас всегда будет запятая, вы можете пропустить чек.

        string a = "asdkjafjksdlfm,dsklfmdkslfmdkslmfksd";
        int comma = a.IndexOf(',');
        string b = a;
        if (comma != -1)
        {
            b = a.Substring(0, comma);
        }
        Console.WriteLine(b);

Ответ 5

Алина, основанная на том, что вы написали выше, тогда Split будет работать для вас.

string[] a = comment.Split(',');

Учитывая вашу примерную строку, тогда [0] = "aaa", a [1] = "bbbbb", a [2] = "cccc" и a [3] = "dddd"

Ответ 6

string NoComma = "";
string example = "text before first comma, more stuff and another comma, there";
string result = example.IndexOf(',') == 0 ? NoComma  : example.Split(',')[0];