Reference   Language | Libraries | Comparison | Changes



The String library, part of the core as of version 0019, allows you to use and manipulate strings of text in more complex ways than the string character array does. You can concatenate Strings, append to them, search for and replace substrings, and more. It takes more memory than a simple character array, but it is also more useful.

For reference, constant character arrays are referred to as strings with a small s, and String objects are referred to as Strings with a capital S.


All of the following are valid declarations for Strings.

String stringOne = "Hello String";                     // using a constant String
String stringOne =  String('a');                       // converting a constant char into a String
String stringTwo =  String("This is a string");        // converting a constant string into a String object
String stringOne =  String(stringTwo + " with more");  // concatenating two strings
String stringOne =  String(13);                        // using a constant integer
String stringOne =  String(analogRead(0), DEC);        // using an int and a base
String stringOne =  String(45, HEX);                   // using an int and a base (hexadecimal)
String stringOne =  String(255, BIN);                  // using an int and a base (binary)
String stringOne =  String(millis(), DEC);             // using a long and a base

Possible ways to declare strings

  • use a constant string of characters, in double quotes
  • use a single constant character, in single quotes
  • Cast a constant string of characters into a String object
  • Concatenating two String objects, or a String object and a constant string of characters.
  • use a constant integer. The integer will be cast into the character array that represents it. See below for details
  • use a constant integer and a base value. The integer will be cast into a character array that represents in the base. See below for details.
  • use a constant long integer, or a variable integer or long integer. Works the same way as using a constant integer or long integer.

Constant integer Strings

Declaring a String with a constant number results in a string that contains the ASCII representation of that number. The default is base ten,so

String thisString = String(13)

gives you the String "13". You can use other bases, however. For example,

String thisString = String(13, HEX)

gives you the String "D", which is the hexadecimal representation of the decimal value 13. Or if you prefer binary,

String thisString = String(13, BIN)

gives you the String "1011", which is the binary representation of 13.

Experienced programmers may be wondering how to declare a String of a fixed length of 13 characters. There's no constructor for that, because Strings can be added to through concatenation, or shortened through using trim().

See Also

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.