Подстрока извлечения от строки до находит запятую

Я склонен использовать -Wall (потому что все действительно делают ошибки, никто не прекрасен), но я не использую -Werror (предупреждения обработки как ошибки), потому что время от времени gcc предупреждает о вещах, которые являются правильными так или иначе (ложные положительные стороны).

15
задан wonea 29 January 2019 в 10:32
поделиться

6 ответов

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

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

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

39
ответ дан 30 November 2019 в 23:52
поделиться
var firstPart = str.Split(new [] { ',' }, 2)[0]

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

12
ответ дан 30 November 2019 в 23:52
поделиться

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

        string a = "asdkjafjksdlfm,dsklfmdkslfmdkslmfksd";
        int comma = a.IndexOf(',');
        string b = a;
        if (comma != -1)
        {
            b = a.Substring(0, comma);
        }
        Console.WriteLine(b);
8
ответ дан 30 November 2019 в 23:52
поделиться
myString = myString.Substring(0,myString.IndexOf(','));
8
ответ дан 30 November 2019 в 23:52
поделиться

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

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

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

4
ответ дан 30 November 2019 в 23:52
поделиться
string NoComma = "";
string example = "text before first comma, more stuff and another comma, there";
string result = example.IndexOf(',') == 0 ? NoComma  : example.Split(',')[0];
3
ответ дан 30 November 2019 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: