如何从字符串中找到一组字符的最后一次出现

12

我正在尝试查找字符串中最后一个运算符(+-*/)。

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

string的值可以是:

1+1/2*3-4

1/2-3+4*7

这意味着最后一个操作符可以是它们中的任何一个。


2
+1,好问题。我知道如何做到这一点,但这样做不够优雅,所以在我找到一种简洁的方法(例如使用LINQ之类的东西)之前,我会等待其他建议。编辑:已解决,有一个方法可以做到这一点。 - user1017882
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 如果你想将字符本身存储到一个变量中,你可以有:
var myString = "1/2-3+4*7";
var operatorChar = myString[myString.LastIndexOfAny(new char[] { '+', '-', '/', '*' })];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接