Rahul s menon Ответов: 1

C# как разбить строковый символ с помощью '\tab' вместо '\t'


У меня есть строка, которая содержит \tab вместо \t. я хочу разделить строку с помощью \tab.

Я попытался разделить свою строку с помощью \tab, но столкнулся с ошибкой "слишком много символов в символьном литерале".

Что я уже пробовал:

string[] Record = value.Split('\tab');

Jon McKee

Почему? Escape-последовательности в строковых литералах стандартизированы не просто так. Если вы действительно должны (я настоятельно рекомендую не делать этого), вы можете использовать Split перегрузка принимает строковый массив. string[] Record = value.Split(new string[] {"\\tab"}, StringSplitOptions.None);

EDIT: также ошибка заключается в том, что '' указывает на один символ, но '\tab' не переводится ни на один символ. Это переводится как "<tab>ab".

Patrice T

Показать пример ввода и вывода

1 Ответов

Рейтинг:
6

OriginalGriff

'\tab' - это не символ, так что это никогда не сработает-символ содержит только одну букву или экранированную букву, такую как '\n' или '\\'

Если ваша строка разделена символами табуляции, то '\t' будет работать нормально - это символ C# для табуляции.

Если он разделен последовательностью '\', 't', 'a', 'b', то вам нужно будет использовать строковый массив:

string[] stringSeparators = new string[] {@"\tab"};
string[] result = source.Split(stringSeparators, StringSplitOptions.None);