12

我试图在字符串中找到最后一个运算符 ( +, -, *or /)。

我试图使用该方法string.indexof('operator', i);,但在这种情况下,我只能获得单一类型的operator. 有没有更好的解决方案?

例如,的值string可以是:

1+1/2*3-4

或者

1/2-3+4*7

这意味着最后一个运算符可以是其中的任何一个。

4

1 回答 1

19

http://msdn.microsoft.com/en-us/library/system.string.lastindexofany.aspx

LastIndexOfAny方法就是你所追求的。它需要一个字符数组,并找到任何字符的最后一次出现。

var myString = "1/2-3+4*7";
var lastOperatorIndex = myString.LastIndexOfAny(new char[] { '+', '-', '/', '*' });

在这种情况下,lastOperatorIndex == 7

如果您想将 char 本身存储到一个变量中,您可以

var myString = "1/2-3+4*7";
var operatorChar = myString[myString.LastIndexOfAny(new char[] { '+', '-', '/', '*' })];
于 2013-10-09T09:30:42.813 回答