Frage

So bewerten Sie den mathematischen Ausdruck aus der Zeichenfolge in J2ME.

Zum Beispiel eine Zeichenfolge, die "2*4" enthält. Aus der Zeichenfolge, die ich den mathematischen Ausdruck bewerten möchte, und das Ergebnis als 8 (2*4) erhalten. Wie sollte ich dies in J2ME tun.

In "Java ™ Platform Standard Ed. 6" gibt es ein Paket, nämlich "javax.script" wird zur Bewertung mathematischer Ausdrücke von String verwendet. Da jedes Paket oder eine Klasse für J2ME verfügbar ist, um den mathematischen Ausdruck aus der String zu bewerten.

War es hilfreich?

Lösung 2

Im Folgenden werden die Schritte verwendet, um den mathematischen Ausdruck aus der Zeichenfolge in J2ME zu bewerten

  1. Lesen Sie den Ausdruck in einer Zeichenfolgenvariablen. Hier befindet sich der Ausdruck in Infixform.
  2. Konvertieren Sie den Ausdruck in der String -Variable in ein Postfix -Formular und speichern Sie ihn in einer anderen String -Variable, nämlich "postfix_str".
  3. Bewerten Sie den Ausdruck im Postfix -Formular (den Wert in den Daten "postfix_str") mit dem Stapel.

Andere Tipps

Wenn Sie verschachtelte Ausdrücke verarbeiten müssen, schreiben Sie einfach Ihren eigenen Stack -basierten Parser.

Wenn Sie mit dem Algorithmus nicht vertraut sind, verwenden Sie zwei Stapel, einen zum Halten von Betreibern und die andere für den Halten von Operanden.

Für den grundlegenden Fall analysieren Sie alle Betreiber und Operanden in ihre jeweiligen Stapel und bewerten sie dann, indem Sie zwei Operanden und einen Bediener abbrechen und die Berechnung durchführen und das Ergebnis wieder auf dem Operand -Stapel speichern. Fahren Sie fort, bis der Bedienerstapel leer ist und der Operand -Stapel nur einen Wert hat (das Ergebnis). Wenn Ihnen die Operatoren ausgehen und mehr als ein Ergebnis in Ihrem Stapel vorhanden ist, gibt es einen Fehler im Ausdruck.

Um mit Klammern (einschließlich verschachtelter Klammern) umzugehen, nehmen Sie Operatoren für die linke und rechte Pareens ein. Wenn Sie den Ausdruck analysieren, wenn Sie auf ein rechtes Pfarrer begegnen, bewerten Sie den Ausdruck sofort (zwei Operanden und einen Bediener, und platzieren Sie das Ergebnis wieder auf den Operandenstapel), bis Sie auf ein linkes Pfarrer stoßen. Dann wieder analysieren Sie den Ausdruck.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top