0

我试图在字符串末尾获取百分比(即“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;
}
4

2 回答 2

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);
于 2013-08-10T23:07:55.377 回答
2

您也可以为此使用正则表达式

string text = "50013 / 247050 [20%]";
var outp = Regex.Match(text, @"\[(\d+)%\]").Groups[1].Value;
于 2013-08-10T23:09:22.070 回答