Выберите определенную часть в строке как переменную c # - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть строка, подобная следующей "1 1/2 + 2 2/3"

Теперь я хочу, чтобы "1 1/2" была переменной, а "2 2/3" - другой переменной. Как мне это исправить?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 07 сентября 2011

Если у вас всегда будет знак «+», вы можете просто:

var splitStrings = stringWithPlus.Split('+');
for (int i = 0; i < splitStrings.Length; i++) {
   splitStrings[i] = splitStrings[i].Trim();
}

редактировать: если вы действительно хотите поместить эти две части в две отдельные переменные, вы можете сделать это,Но это совершенно не нужно.Тип переменной будет string[], но чтобы получить их в две переменные:

var splitStrings = stringWithPlus.Split('+');
for (int i = 0; i < splitStrings.Length; i++) {
   splitStrings[i] = splitStrings[i].Trim();
}
string firstHalf = splitStrings[0];
string secondHalf = splitStrings[1];

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

Если вам удобно с Linq и вы хотите сократить это (приведенный выше пример иллюстрирует, что именно происходит), вы можете выполнить split & foreach за один раз.строка:

var splitStrings = stringWithPlus.Split('+').Select(aString => aString.Trim()).ToArray();
string firstHalf=splitStrings[0];
string secondHalf=splitStrings[1];

Если этот синтаксис сбивает с толку, вам следует выполнить поиск в Linq, а точнее в Linq to Objects.

3 голосов
/ 07 сентября 2011

Чтобы сделать его короче, я использовал Linq для обрезки струн. Затем я преобразовал его обратно в массив.

string[] parts = stringWithPlus.Split('+').Select(p => p.Trim()).ToArray();

Используйте их как:

parts[0], parts[1]... parts[n - 1] 

где n = parts.Length.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...