Java: Converting Anything to String
Summary: Converting any data to strings is easy. You can do almost everything with concatenation, but can get more control using some of the alternatives.
Converting numbers to strings - See Converting Numbers to Strings
There are many specialized issues with regard to converting numbers (precision, exponents, currency, locale, ...), which are covered in Converting Numbers to Strings.
Summary of conversion alternatives
- Concatenate anything to a string and it will automatically be converted to string and then the concatenation will take place.
- Call
toString()
for an object. This method will convert any object into a string, altho it won't always produce the result you want. - Use formatted output, eg by calling
String.format(...)
. See Formatted conversion to String . - No conversion is required by some common system methods, which
take any type parameter and convert it to a String, eg,
System.out.println()
.
Concatenation (+)
The most common idiom to convert something to a string is to concatenate it with a string. If you just want the value with no additional text, concatenate it with the empty string, one with no characters in it ("").
If either operand of a concatenation is a string, the other operand is converted to string, regardless of whether it is a primitive or object type.
Card c = ...; // Assume Card is a class that defines a playing card. String s; . . . s = c; // ILLEGAL s = "" + c; // Might assign "Three of Hearts" to s s = c + " is trouble"; // Assigns "Three of Hearts is trouble" to s.
This conversion to string is made by calling the object's toString()
method.
toString() method - Define it for your classes
Method toString
is already defined.
When Java needs to convert an object to a String, it calls the
object's toString()
method. Because every class (object type)
inherits from the Object
class,
Object's toString()
method is automatically defined.
This generates a string from an object, but
it will not always be very useful.
If the child class doesn't override toString()
, the default
probably won't print anything interesting. Just as many of the Java library
classes override toString()
to produce something more
useful, you should also override toString()
in your classes.
Enums
[There should be something here about Java 5's enums.]