我有一个字符串,格式如下:
"####/xxxxx"
“/”之前的文本总是一个整数,我需要阅读它。如何只获取该字符串的整数部分(在“/”之前)?
感谢您的帮助。
答案 0 :(得分:4)
您可以在/
上拆分字符串,然后在数组的第一个元素上使用int.TryParse
来查看它是否是一个整数:
string str = "1234/xxxxx";
string[] array = str.Split(new []{'/'}, StringSplitOptions.RemoveEmptyEntries);
int number = 0;
if (str.Length == 2 && int.TryParse(array[0], out number))
{
//parsing successful.
}
else
{
//invalid number / string
}
Console.WriteLine(number);
答案 1 :(得分:1)
使用IndexOf
和Substring
:
int indexOfSlash = text.IndexOf('/');
string beforeSlash = null;
int numBeforeSlash = int.MinValue;
if(indexOfSlash >= 0)
{
beforeSlash = text.Substring(0, indexOfSlash);
if(int.TryParse(beforeSlash, out numBeforeSlash))
{
// numBeforeSlash contains the real number
}
}
答案 2 :(得分:0)
另一种选择:使用正则表达式:
var re = new System.Text.RegularExpression(@"^(\d+)/", RegexOptions.Compiled);
// ideally make re a static member so it only has to be compiled once
var m = re.Match(text);
if (m.IsMatch) {
var beforeSlash = Integer.Parse(re.Groups[0].Value);
}