Sometimes there is need to change an integer to text. I often use the following way:
"" + myNumber
But there is alternative way:
Integer.toString(myNumber)
Which one is better (performance, readability, safety)? Or are those equal?
Code Review Stack Exchange is a question and answer site for peer programmer code reviews. It only takes a minute to sign up.
Sign up to join this communitySometimes there is need to change an integer to text. I often use the following way:
"" + myNumber
But there is alternative way:
Integer.toString(myNumber)
Which one is better (performance, readability, safety)? Or are those equal?
I would recommend
String.valueOf(myNumber)
This allows you to to change myNumber to another primitive type - or a Number - later.
"" + myNumber
should be avoided since :
Integer.toString(myNumber) is the safer way because it throws a malformed exception.
Do not worry about performance at this level. There is an expression: Premature Optimization.
EDIT after comment
"3000000000" > Integer.MAX_VALUE
throw an Exception
"-2900000000" < Integer.MIN_VALUE
throw an Exception
"OO12345" throw an exception, because it begins with two O letters
, not zero.
You can also manage radix :
String intS = "010101";
System.out.format("Parsing %s gives %d, fail with \"010102\"%n",
intS,(Integer.parseInt(intS, 2)));
intS = "10CAFE8";
System.out.format("Parsing %s gives %d, fail with \"10CAGE8\"%n",
intS,(Integer.parseInt(intS, 16)));
Output :
Parsing 010101 gives 21, fail with "010102"
Parsing 10CAFE8 gives 17608680, fail with "10CAGE8"
EDIT after comment 2
Look in Effective Java and search for StringBuilder() to understant how to replace '+
' usage.
At execution time, a '+
' create something like this code :
StringBuilder sb = new StringBuilder();
sb.append(123);
sb.toString();
This code is better :
final int a = 123;
Integer.toString(a);
Look at Java code of Integer.toString(a);
In Eclipse : CTRL+rightClick
on toString()
print the Java code . Give the src.zip
path in SDK directory if it not already done.
And compare with StringBuilder.append(int);
Effective Java
is a reference to write good code, Is the response you needed? Many other things to know are also inside this book.
\$\endgroup\$
I would say they were equally as good. I prefer to use
Integer.toString(myNumber)
as I find it explains the transition better