Por lo tanto, este es un problema que creo que es mucho más complicado de lo que permite la pregunta vinculada (aunque la pregunta es pedir un analizador de ecuaciones "simple").
Afortunadamente para ti, creo que este es un problema realmente interesante y ya he escrito uno para ti: DDMathParser
.
Tiene un good amount of documentation, incluyendo cosas como how to add it to your project y high overview of its capabilities. Es compatible con all of the standard mathematical operators, incluidos los operadores lógicos y de comparación (||
, &&
, ==
, !=
, <=
, etc.).
En su caso, usted haría algo como esto:
NSNumber *result = [@"15+14 == 23" numberByEvaluatingString];
if ([result boolValue] == YES) {
....True statement....
} else {
.....False statement.....
}
Como un mano a mano, DDMathParser
está disponible bajo la licencia MIT, que requiere que se incluyan la información de derechos de autor y el texto completo de la licencia en cualquier cosa que lo use.
posible duplicado de [Escribir un analizador simple ecuación] (http://stackoverflow.com/questions/4582398/writing-a-simple-equation-parser) –
Son estas cadenas procedentes de una fuente de datos, o ¿entrada del usuario? Tendrá que averiguar qué tipos de ecuación matemática desea admitir y luego ir desde allí. (es decir, qué operandos, cuántos operandos y si el usuario alguna vez escribirá ==) (¿Desea soporte para 1 * 1 * 1 * 1x1 * 1 = 1?) –
La cadena vendrá de una fuente de datos fija, hay números del 0 - 20, ecuación (+ - * /) e igual (==) –