2013-10-09 2 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[] { '+', '-', '/', '*' })]; 
관련 문제