如何从字符串中解析整数和剩余的字符串?

时间:2011-05-15 02:55:53

标签: c#

我的字符串看起来像这样:

1. abc
2. def
88. ghi

我希望能够从字符串中获取数字并将其放入变量中,然后获取字符串的其余部分并将其放入另一个变量中。该数字始终位于字符串的开头,并且该数字后面有一段时间。有一种简单的方法可以将一个字符串解析为数字和字符串吗?

5 个答案:

答案 0 :(得分:3)

可能不是最好的方式,但是,用“。”分开(谢谢柯克)

之后的所有内容都是一个字符串,之前的所有内容都是一个数字。

答案 1 :(得分:2)

您可以致电IndexOfSubstring

int dot = str.IndexOf(".");
int num = int.Parse(str.Remove(dot).Trim());
string rest = str.Substring(dot).Trim();

答案 2 :(得分:1)

        var input = "1. abc";
        var match = Regex.Match(input, @"(?<Number>\d+)\. (?<Text>.*)");
        var number = int.Parse(match.Groups["Number"].Value);
        var text = match.Groups["Text"].Value;

答案 3 :(得分:0)

这应该有效:

public void Parse(string input)
{
    string[] parts = input.Split('.');
    int number = int.Parse(parts[0]); // convert the number to int
    string str = parts[1].Trim(); // remove extra whitespace around the remaining string
}

第一行将字符串拆分为一个字符串数组,其中第一个元素是数字,第二个元素是字符串的剩余部分。

然后,您可以将数字转换为int.Parse的整数。

答案 4 :(得分:0)

public Tuple<int, string> SplitItem(string item)
{
    var parts = item.Split(new[] { '.' });
    return Tuple.Create(int.Parse(parts[0]), parts[1].Trim());
}

var tokens = SplitItem("1. abc");
int number = tokens.Item1;  // 1
string str = tokens.Item2;  // "abc"