0

私はNSString

n +(n --m)

DDMathParserを使用して式オブジェクトを作成できますか?

たとえば、基本式n +(n --m)がありますが、基本式n +(n --m)をユーザー式(たとえば(n --m)+ n)と比較する能力が必要です。

または、記号と中括弧を考慮して2つのNSStringを比較する方法についてはすでに解決策がありますか?

つまり、たとえば、文字列を使用して2つの式を初期化し、何らかのメソッドを使用して、Expression1=Expression2のように比較することができます。

これは、式がパーサーでどのように見えるかを示す例です。

ここに画像の説明を入力してください

したがって、これは同じ構造体であり、左右のノードを使用して比較できます。木の。文字列を式ツリーに解析するこのソリューションを見つけるのは興味深いことです。この解決策はすでに作られたと思います。

4

1 に答える 1

1

はい、DDMathParserを使用してこれを行うことができます。

NSString *string = @"5 + (5 - 3)";
NSError *error = nil;
DDExpression *expression = [DDExpression expressionFromString:string error:&error];

if (expression) {
  NSLog(@"%@", expression)
} else {
  NSLog(@"%@", error);
}

DDMathParserには、式の書き換えに対する(基本的な)サポートがいくつかありますが、それ以外は、式ツリーを自分で比較するのはあなた次第です。

于 2012-12-18T17:45:53.733 に答える