This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Textförmige Eingabe und Ausgabe /

Zeichenkettendarstellung von BoxenDie Syntax der Mathematica-Sprache

2.8.13 Wandlung zwischen Zeichenketten, Boxen und Ausdrücken

Wandlung zwischen Zeichenketten, Boxen und Ausdrücken

Hier ist ein einfacher Ausdruck.

In[1]:= x^2 + y^2

Out[1]=

Dies ergibt die InputForm des Ausdrucks als Zeichenkette.

In[2]:= ToString[x^2 + y^2, InputForm]

Out[2]=

In FullForm erscheinen explizite Anführungsstriche um die Zeichenkette herum.

In[3]:= FullForm[%]

Out[3]//FullForm=

Dies ergibt eine Zeichenkettendarstellung für die StandardForm-Boxen, die dem Ausdruck entsprechen.

In[4]:= ToString[x^2 + y^2, StandardForm] // FullForm

Out[4]//FullForm=

ToBoxes ergibt die Boxen selber.

In[5]:= ToBoxes[x^2 + y^2, StandardForm]

Out[5]=

Bei der Erzeugung von Daten für Dateien und externe Programme ist es mitunter notwendig, zweidimensionale Formen zu erzeugen, die nur gewöhnliche Tastaturzeichen verwenden. Dies kann mit OutputForm erreicht werden.

Dies produziert eine Zeichenkette, die eine zweidimensionale Darstellung des Ausdruckes nur mit gewöhnlichen Tastaturzeichen ergibt.

In[6]:= ToString[x^2 + y^2, OutputForm]

Out[6]=

Die Zeichenkette besteht aus zwei Linien, getrennt durch ein explizites \n-Zeichen (Zeilenvorschub).

In[7]:= FullForm[%]

Out[7]//FullForm=

Die Zeichenkette sieht nur in einer Nicht-Proportionalschrift korrekt aus.

In[8]:= StyleBox[%, FontFamily->"Times"] // DisplayForm

Out[8]//DisplayForm=

Wenn Sie mit eindimensionalen Strukturen arbeiten, lassen sich mit ToString wirkungsvoll Zeichenketten-Manipulationen mit Formatierungsfunktionen durchführen.

Dies erzeugt eine Zeichenkette, entsprechend der InputForm von StringForm.

In[9]:= ToString[StringForm["``^10 = ``", 4, 4^10]] // InputForm

Out[9]//InputForm= "4^10 = 1048576"

Einige mit ToExpression bearbeitbare Formen

Dies erzeugt einen Ausdruck aus einer InputForm-Zeichenkette.

In[10]:= ToExpression["x^2 + y^2"]

Out[10]=

Dies erzeugt denselben Ausdruck aus StandardForm-Boxen.

In[11]:= ToExpression[RowBox[{SuperscriptBox["x", "2"], "+",
SuperscriptBox["y", "2"]}]]

Out[11]=

Hier werden die Boxen in InputForm dargestellt.

In[12]:= ToExpression[\(x\^2 + y\^2\)]

Out[12]=

Dies liefert rohe Boxen.

In[13]:= ToExpression["\(x\^2 + y\^2\)"]

Out[13]=

Dies interpretiert die Boxen.

In[14]:= ToExpression["\!\(x\^2 + y\^2\)"]

Out[14]=

In TraditionalForm werden diese als Funktionen interpretiert.

In[15]:= ToExpression["c(1 + x) + log(x)", TraditionalForm]

Out[15]=

Ausdrücke erzeugen, die in spezielle Köpfe eingehüllt sind

Dies erzeugt einen Ausdruck und evaluiert ihn dann sofort.

In[16]:= ToExpression["1 + 1"]

Out[16]=

Dies erzeugt einen Ausdruck mit StandardForm-Regeln und hüllt ihn dann in Hold ein.

In[17]:= ToExpression["1 + 1", StandardForm, Hold]

Out[17]=

Mit ReleaseHold können Sie die Wirkung von Hold aufheben.

In[18]:= ReleaseHold[%]

Out[18]=

Korrektheit von Zeichenketten als Eingabe prüfen

ToExpression wird versuchen, jede Zeichenkette als Mathematica-Eingabe zu interpretieren. Wenn Sie aber eine Zeichenkette eingeben, die keiner syntaktisch korrekten Eingabe entspricht, dann wird es eine Meldung ausgeben und $Failed zurückgeben.

Dies ist keine syntaktisch korrekte Eingabe, deshalb wandelt ToExpression sie nicht in einen Ausdruck um.

In[19]:= ToExpression["1 +/+ 2"]

ToExpression::sntx: Syntaxfehler in oder vor "1 +/+ 2". ^

Out[19]=

ToExpression verlangt, daß die Zeichenkette einem vollständigen Mathematica-Ausdruck entspricht.

In[20]:= ToExpression["1 + 2 + "]

ToExpression::sntxi: Unvollständiger Ausdruck; mehr Eingabe ist erforderlich.

Out[20]=$Failed

Mit der Funktion SyntaxQ läßt sich prüfen, ob eine spezielle Zeichenkette einer syntaktisch korrekten Mathematica-Eingabe entspricht. Wenn SyntaxQ False zurückgibt, läßt sich mit SyntaxLength herausfinden, wo der Fehler ist. SyntaxLength liefert die Anzahl der Zeichen, die erfolgreich verarbeitet wurden, ehe ein Syntaxfehler entdeckt wurde.

SyntaxQ zeigt, daß diese Zeichenkette keiner syntaktisch korrekten Mathematica-Eingabe entspricht.

In[21]:= SyntaxQ["1 +/+ 2"]

Out[21]=

SyntaxLength zeigt an, daß nach dem dritten Zeichen in der Zeichenkette ein Fehler entdeckt wurde.

In[22]:= SyntaxLength["1 +/+ 2"]

Out[22]=

Hier gibt SyntaxLength einen Wert zurück, der größer als die Länge der Zeichenkette ist und zeigt damit an, daß die Eingabe soweit in Ordnung ist, aber noch fortgesetzt werden müßte.

In[23]:= SyntaxLength["1 + 2 + "]

Out[23]=

Zeichenkettendarstellung von BoxenDie Syntax der Mathematica-Sprache