Как определить, есть ли два или одно число в начале моей строки? - PullRequest
3 голосов
/ 28 сентября 2010

Как определить, какое число (с произвольным числом цифр) находится в начале строки?

Некоторые возможные строки:

1123|http://example.com
2|daas

Который должен вернуть 1123 и 2.

Ответы [ 4 ]

6 голосов
/ 28 сентября 2010

Используйте регулярное выражение:

using System.Text.RegularExpressions;

str = "35|http:\/\/v10.lscache3.c.youtube.com\/videoplayback...";

Regex r = new Regex(@"^[0-9]{1,2}");
Match m = r.Match(str);    
if(m.Success) {
    Console.WriteLine("Matched: " + m.Value);
} else {
    Console.WriteLine("No match");
}

будет захватывать 1-2 цифры в начале строки.

5 голосов
/ 28 сентября 2010

Вы можете использовать LINQ:

string s = "35|...";

int result = int.Parse(new string(s.TakeWhile(char.IsDigit).ToArray()));

или (если за номером всегда следует |) манипулирование хорошей старой строкой:

string s = "35|...";

int result = int.Parse(s.Substring(0, s.IndexOf('|')));
0 голосов
/ 28 сентября 2010

Вы можете получить два первых символа и преобразовать их в int.

var s = "a35|...";
short result = 0;
bool isNum = Int16.TryParse(s.Substring(0, 2), out result);
0 голосов
/ 28 сентября 2010

, если вы знаете, что число всегда будет состоять из 2 цифр:

string str = "35|http:\/\/v10.lscache3.c.youtube.com\/videoplayback?...";
int result;
if (!int.TryParse(str.Substring(0, 2), out result)) {
    int.TryParse(str.Substring(0, 1), out result)
}
// use the number

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

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