2013-10-09 98 views
9

我試圖在字符串中找到最後一個運算符(+,-,或/)。如何查找字符串中最後一次出現的字符集

我試圖使用方法string.indexof('operator', i);,但在這種情況下,我只能得到單一類型的operator。有沒有更好的解決方案?

string的值可以,例如,是:

1+1/2*3-4

1/2-3+4*7

這意味着最後一個操作者可以是任何人。

+2

+1,很好的問題。我知道如何做到這一點,但它不會很優雅,所以直到我找到了一種可以簡潔完成的方式(使用類似LINQ的東西),我會等待看到其他建議。編輯:排序,有一個這樣的方法。 –

回答

10

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[] { '+', '-', '/', '*' })]; 
相關問題