나는 수학 공식을 문자열 형식으로 가지고 있습니다.NSString을 + 연산자로 직접 변환 할 수 있습니까?
변환하는 방법이 있나요 @ "+"(문자열 상수) 직접 내가이 방정식을 해결하기 위해 IF-else 문을 사용할 필요가 목표 C 또는
에서 또한 운영자에 ??
나는 수학 공식을 문자열 형식으로 가지고 있습니다.NSString을 + 연산자로 직접 변환 할 수 있습니까?
변환하는 방법이 있나요 @ "+"(문자열 상수) 직접 내가이 방정식을 해결하기 위해 IF-else 문을 사용할 필요가 목표 C 또는
에서 또한 운영자에 ??
NSPredicate * parsed = [NSPredicate predicateWithFormat:@"123+456+678-985 = 0"];
NSExpression * left = [(NSComparisonPredicate *)parsed leftExpression];
NSNumber * result = [left expressionValueWithObject:nil context:nil];
float i = [result floatValue];
당신은 술어가 필요없고 http : // stackoverflow.com/questions/12500232/i-have-formula-in-a-nsstring-how-to-evaluate-it/12500518#12500518 –
if([yourString isEqualToString:@"+"])
{
//Do something
}
이 코드는 작동합니다.
네, 물론. 괜찮 았지만 나는 그것에 대해 걱정하지 않았다. 단지 변환 할 방법이 있는지 알고 싶었다. :) – DemonicPossessions1991
수표 기억 : –
이이
NSString *expressionFormat = [NSString stringWithFormat:@"(%d %@ %d)",firstNumber,arcthimaticOperator,secondNumber];
NSExpression *expression = [NSExpression expressionWithFormat:expressionFormat];
NSNumber *result = [expression expressionValueWithObject:nil context:nil];
NSLog(@"%@", result);
위의 코드는 예외가 발생합니다 다른 올바른 형식을 입력 있는지 확인하십시오 달성하기 위해 NSExpression를 사용할 수 있습니다.
당신이 이것에 대해 질문하는 특정 유스 케이스는 무엇입니까? 너는 왜 이걸하고 싶어하니? –
123 + 456 + 678-985 문자열 상수의 형식입니다. (float I = 123 + 456 + 678-985) – DemonicPossessions1991
같은 수학적 방정식으로 변환 할 수 있습니까? 단지 "@"인 경우 문자열을 비교하면됩니다. 실제로 표현식을 평가하고 싶다면 오픈 소스 구현을위한 문자열 방정식을 찾아 보는 것이 좋습니다. 물론 – 0xSina