Как получить строку - PullRequest
0 голосов
/ 13 июня 2019

У меня есть строка вроде:

"S=35 , P=232 , a=12"

Я хочу просто сохранить строку, которая находится между "S=" и "," и "P=" - "," "a=", ",",Как я могу это сделать?Должен ли я использовать Regex или я могу сделать это по-другому?

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Вы можете создать экземпляр stringbuilder, а затем загрузить строку в массив символов.Выполните цикл For Each Loop, чтобы выполнить итерацию по каждому символу в массиве.Если символ не числовой, добавьте его в строитель строк.Если это перейти к следующему символу.После этого просто сделайте Stringbuilder.ToString ().

1 голос
/ 13 июня 2019

Вы можете попробовать Linq и преобразовать строку в словарь:

 string source = "S=35 , P=232 , a=12";

 Dictionary<string, string> dict = source
   .Split(',')
   .Select(line => line.Split('='))
   .ToDictionary(items => items[0].Trim(), items => items[1].Trim());

Создав dict, вы можете легко запросить его:

 string p = dict["P"];

 if (dict.TryGetValue("a", out var a)) {
   // "a" exists, its value in a
 }

Если вы хотите получить только цифры, т.е. получить "3523212", вы можете попробовать другой Linq:

 string result = string.Concat(source.Where(c => c >= '0' && c <= '9'));

Вам не нужно использовать регулярные выражения , но вы можете легко это сделать:

 // "35 232 12"
 string matches = string.Join(" ", Regex
   .Matches(source, "[0-9]+")
   .Cast<Match>()
   .Select(match => match.Value)); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...