我试图在字符串结尾处获得百分比(即“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;
}
答案 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;