As with most programming languages, strings are used extensively throughout Java, so the Java API has quite a bit of functionality to help you manipulate strings. This chapter describes the following classes:
String quote = "To be or not to be";
All string literals are compiled into String objects. Although the Java compiler does not generally treat expressions involving object references as compile-time constants, references to String objects created from string literals are treated as compile-time constants.
Of course, there are many other ways to create a String object. The String class has a number of constructors that let you create a String from an array of bytes, an array of characters, another String object, or a StringBuffer object.
If you are a C or C++ programmer, you may be wondering if String objects are null-terminated. The answer is no, and, in fact, the question is irrelevant. The String class actually uses a character array internally. Since arrays in Java are actual objects that know their own length, a String object also knows its length and does not require a special terminator. Use the length() method to get the length of a String object.
Although String objects are immutable, the String class does provide a number of useful methods for working with strings. Any operation that would otherwise change the characters or the length of the string returns a new String object that copies the necessary portions of the original String.
The following methods access the contents of a String object:
You can compare the contents of String objects with the following methods:
Use the following methods to search for characters in a string:
The following methods manipulate the contents of a string and return a new, related string:
The String class also defines a number of static methods named valueOf() that return string representations of primitive Java data types and objects. The Object class defines a toString() method, and, since Object is the ultimate superclass of every other class, every class inherits a basic toString() method. Any class that has a string representation should override the toString() method to produce the appropriate string.