如何确定字符串开头的数字(任意位数)?
一些可能的字符串:
1123|http://example.com
2|daas
哪个应该返回1123和2.
答案 0 :(得分:6)
使用正则表达式:
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位数字。
答案 1 :(得分:5)
您可以使用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('|')));
答案 2 :(得分:0)
如果你知道这个数字总是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
如果您不确定该数字的长度,请查看dtb的.indexOf()方法。如果你需要更复杂的东西,那么只考虑使用正则表达式。
答案 3 :(得分:0)
您可以获取前两个字符并转换为int。
var s = "a35|...";
short result = 0;
bool isNum = Int16.TryParse(s.Substring(0, 2), out result);