C#只读取整个字符串的一部分

时间:2014-01-29 15:34:24

标签: c# string

我有一个字符串,格式如下:

"####/xxxxx"

“/”之前的文本总是一个整数,我需要阅读它。如何只获取该字符串的整数部分(在“/”之前)?

感谢您的帮助。

3 个答案:

答案 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)

使用IndexOfSubstring

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);
}