How to convert string value to number in java?
While processing user input it is frequent essential to convert a String
in which the user enters into an int
. The syntax is straightforward. It needs using the static Integer.valueOf(String s)
and intValue()
methods from the java.lang.Integer
class. To convert the String
"22"
into the int 22
you would write
int i = Integer.valueOf("22").intValue();
Doubles, floats and longs are converted similarly. To convert a String like "22" into the long value 22 you would write
long l = Long.valueOf("22").longValue();
To convert "22.5"
into a float
or a double
you would write:
double x = Double.valueOf("22.5").doubleValue();
float y = Float.valueOf("22.5").floatValue();
The several valueOf()
methods are relatively intelligent and can handle plus and minus signs, exponents, and most other general number formats. However if you pass one something fully non-numeric like "pretty in pink,"
it will throw a NumberFormatException
. You haven't learned how to handle exceptions yet, so try to avoid passing theses techniques non-numeric data.
You can now rewrite the E = mc2 program to accept the mass in kilograms as user input from the command line. Several of the exercises will be same.
class Energy {
public static void main (String args[]) {
double c = 2.998E8; // meters/second
double mass = Double.valueOf(args[0]).doubleValue();
double E = mass * c * c;
System.out.println(E + " Joules");
}
}
Here's the output:
$ javac Energy.java
$ java Energy 0.0456
4.09853e+15 Joules