2013-10-09 25 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[] { '+', '-', '/', '*' })];