Number to String conversion in Java
There are many ways to convert numbers to String in Java, Some of them we
saw on How to convert int
to String and converting double
to String, But out of those which is the best way to convert number to String in Java? We will cover in this post. If you look at
those Java tutorial you will find that I have advised for using String.valueOf()method for
converting number to String, which is in my opinion best way to convert number
to String.
here are few reason Why valueOf() should be your preferred option
when it comes to converting numbers to String in Java. Since converting from
one class to another, especially from String to other data type or other class
is quite common in Java programming world, we have already covered something
like How to convert Enum
to String in Java and String
to Date conversion in Java. If you are interested in getting yourself
comfortable with converting String to other useful objects, I would recommend
those articles. Anyway let’s come back to number to String conversion.
Look at this example :
Set<String> cities = new HashSet<String>();
cities.add("London");
cities.add("Tokyo");
cities.add("NewYork");
String size = "" + cities.size()
In this example we want to convert size of Collection i.e int to
String in Java and we have used most
simplest way by concatenating with empty String. This approach, on
surface looks clean and easy but its not the best way to convert numbers to
String in Java. As discussed in String
vs StringBuffer, String concatenation is replaced by either StringBuffer or StringBuilder e.g.
something like
String size = new
StringBuilder().append(cities.size).toString();
Which involves an extra object StringBuilder and if you
are doing this operation on a loop or frequently called method, you are bound
to create lot of garbage and lot of work for Garbage
collector in Java.
Number to String Conversion in Java
On the other hand if we use String.valueOf() , which is
overloaded for int, long, float and double and can be
used to convert any number to String, we will get following advantages :
1) String.valueOf() is overloaded
for different numeric data type, which means provides a consistent way to
convert number to String in Java.
2) String.valueOf() does not incur cost of
intermediate concatenation, which means no temporary object e.g. StringBuilder or StringBuffer.
3) valueOf() is made for conversion purpose and
you will find this method in almost all value classes e.g. String, Integer, Float, Double, Long, BigDecimal etc. Using
valueOf() keeps you code consistent across conversion of one
data type to another. In case of Integer, valueOf() method also
able to cache frequently used numbers e.g. from -127 to 128. In short using valueOf()
promotes best
practice in Java.
4) valueOf() delegates String conversion
to respective classes toString()
method in Java e.g. valueOf(int i) delegates to Integer.toString(i,
10) which means String representation of numbers will be consistent
These were some of the reason Why I prefer valueOf() method to convert
numbers to String and thing its best way to convert numbers like int, long,
float or double into String. Next time you convert number to String, consider
using String.valueOf() if you are not using it already.
Other Java articles based on String you may like

No comments:
Post a Comment