Как вставить новую строку в строке в C # после определенной цифры? - PullRequest
0 голосов
/ 21 января 2012

Я программировал некоторый код, в котором я должен вводить текст только в определенном формате.то есть

2
10 5 kdsfj ejkd kjdf
7 8 sdkj dsjklf ckjsd dksj

и т. д.

, но мне нужно ввести данные из текстового файла с целым в виде строки как

2 10 5 kdsfj ejkd kjdf7 8 sdkj dsjklf ckjsd dksj6 12 kjd ekjr fkjdr fdkj

но я хочу добавить текст в формате, указанном выше.Жирные буквы - это труднодоступные места.я хочу программу, чтобы она могла добавлять новую строку после символа или пробела, за которым следовала цифра?

Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 21 января 2012

Ответом будет некая форма регулярного выражения

Regex.Replace(inputString, @"([A-Za-z])(\d)", "$1" + Environment.NewLine + "$2");

Где input - это строка вашего источника из файла, а шаблон соответствует вашим определенным критериямЗаменив выше, вы получите:

2 10 5 kdsfj ejkd kjdf
7 8 sdkj dsjklf ckjsd dksj
6 12 kjd ekjr fkjdr fdkj

Ваши дополнительные комментарии прояснили разрывы строк при присоединении к предыдущему символу;хотя я до сих пор не уверен, почему 2 оказывается на своей линии?

0 голосов
/ 21 января 2012
Regex.Replace(inputString, @"([A-Za-z])(\d)", "$1" + Environment.NewLine + "$2");

Должен сделать трюк, он будет соответствовать серии символов, а затем цифры. Вставка новой строки перед цифрой.

Вы должны будете использовать упреждающие прогнозы или что-то в этом случае надоедливых 2.

0 голосов
/ 21 января 2012
for (int i = 0; i < s.Length - 1; ++i)
  if (!s[i].IsDigit() && s[i+1].IsDigit())
    s.Insert(i+1, Environment.NewLine);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...