This is documentation for Mathematica 3, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
 Documentation / Mathematica / The Mathematica Book / Principles of Mathematica / Strings and Characters  /

2.7.1 Properties of Strings

Much of what Mathematica does revolves around manipulating structured expressions. But you can also use Mathematica as a system for handling unstructured strings of text.

Text strings.

When you input a string of text to Mathematica you must always enclose it in quotes. However, when Mathematica outputs the string it usually does not explicitly show the quotes.
You can see the quotes by asking for the input form of the string. In addition, in a Mathematica notebook, quotes will typically appear automatically as soon as you start to edit a string.

  • When Mathematica outputs a string, it usually does not explicitly show the quotes.
  • In[1]:= "This is a string."


  • You can see the quotes, however, by asking for the input form of the string.
  • In[2]:= InputForm[%]


    The fact that Mathematica does not usually show explicit quotes around strings makes it possible for you to use strings to specify quite directly the textual output you want.

  • The strings are printed out here without explicit quotes.
  • In[3]:= Print["The value is ", 567, "."]

    The value is 567.

    You should understand, however, that even though the string "x" often appears as x in output, it is still a quite different object from the symbol x.

  • The string "x" is not the same as the symbol x.
  • In[4]:= "x" === x


    You can test whether any particular expression is a string by looking at its head. The head of any string is always String.

  • All strings have head String.
  • In[5]:= Head["x"]


  • The pattern _String matches any string.
  • In[6]:= Cases[{"ab", x, "a", y}, _String]


    You can use strings just like other expressions as elements of patterns and transformations. Note, however, that you cannot assign values directly to strings.

  • This gives a definition for an expression that involves a string.
  • In[7]:= z["gold"] = 79


  • This replaces each occurrence of the string "aa" by the symbol x.
  • In[8]:= {"aaa", "aa", "bb", "aa"} /. "aa" -> x