如何从字符串修复解析int?

时间:2013-08-10 23:05:24

标签: c# parseint

我试图在字符串结尾处获得百分比(即“50013/247050 [20%]”我最终会想要20。)由于某种原因它会一直返回-1。我的代码有什么问题?

public int percent(String s)
{
    String outp = "-1";

    if(s != null)
    outp = s;

    try
    {
        outp = s.Substring(s.IndexOf("["), s.IndexOf("%"));
    }
    catch (ArgumentOutOfRangeException e)
    {
    }

    int outt = int.Parse(outp);
    return outt;
}

2 个答案:

答案 0 :(得分:4)

第二个参数不是索引,而是计数。所以你应该做这样的事情:

// because, you don't want the [, you'll add 1 to the index,
int index1 = s.IndexOf("[") + 1;
int index2 = s.IndexOf("%");
string outp = s.Substring(index1, index2 - index1);

答案 1 :(得分:2)

您也可以使用正则表达式

string text = "50013 / 247050 [20%]";
var outp = Regex.Match(text, @"\[(\d+)%\]").Groups[1].Value;