equently, a program ends up with numeric data in a string object—a value entered by the user, for example.
The
Number
subclasses that wrap primitive numeric types ( Byte
, Integer
, Double
, Float
, Long
, and Short
) each provide a class method named valueOf
that converts a string to an object of that type. Here is an example, ValueOfDemo
, that gets two strings from the command line, converts them to numbers, and performs arithmetic operations on the values:public class ValueOfDemo {
public static void main(String[] args) {
// this program requires two
// arguments on the command line
if (args.length == 2) {
// convert strings to numbers
float a = (Float.valueOf(args[0])).floatValue();
float b = (Float.valueOf(args[1])).floatValue();
// do some arithmetic
System.out.println("a + b = " +
(a + b));
System.out.println("a - b = " +
(a - b));
System.out.println("a * b = " +
(a * b));
System.out.println("a / b = " +
(a / b));
System.out.println("a % b = " +
(a % b));
} else {
System.out.println("This program " +
"requires two command-line arguments.");
}
}
}
The following is the output from the program when you use
4.5
and 87.2
for the command-line arguments:a + b = 91.7
a - b = -82.7
a * b = 392.4
a / b = 0.0516055
a % b = 4.5
Note: Each of the
Number
subclasses that wrap primitive numeric types also provides a parseXXXX()
method (for example, parseFloat()
) that can be used to convert strings to primitive numbers. Since a primitive type is returned instead of an object, the parseFloat()
method is more direct than the valueOf()
method. For example, in the ValueOfDemo
program, we could use:float a = Float.parseFloat(args[0]);
float b = Float.parseFloat(args[1]);