|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Часто, программа заканчивается с числовыми данными строковом объекте — значение, вводимое пользователем, например.
Number подклассы, которые обертывают примитивные числовые типы ( Byte, , , , , и ) каждый обеспечивает названный метод class valueOf это преобразовывает строку в объект того типа. Вот пример,
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.");
}
}
}
Следующее является выводом из программы, когда Вы используете 4.5 и 87.2 для параметров командной строки:
a + b = 91.7 a - b = -82.7 a * b = 392.4 a / b = 0.0516055 a % b = 4.5
Number подклассы, которые обертывают примитивные числовые типы также, обеспечивают a parseXXXX() метод (например, parseFloat()) это может использоваться, чтобы преобразовать строки в примитивные числа. Так как тип примитива возвращается вместо объекта, parseFloat() метод является более прямым чем valueOf() метод. Например, в ValueOfDemo программа, мы могли использовать: float a = Float.parseFloat(args[0]); float b = Float.parseFloat(args[1]);
Иногда Вы должны преобразовать число в строку, потому что Вы должны работать на значении в его строковой форме. Есть несколько легких способов преобразовать число в строку:
int i; // Concatenate "i" with an empty string; conversion is handled for you. String s1 = "" + i;
или
// The valueOf class method. String s2 = String.valueOf(i);
Каждый из Number подклассы включают метод class, toString(), это преобразует его тип примитива в строку. Например:
int i; double d; String s3 = Integer.toString(i); String s4 = Double.toString(d);
ToStringDemo пример использует toString метод, чтобы преобразовать число в строку. Программа тогда использует некоторые строковые методы, чтобы вычислить число цифр прежде и после десятичной точки:
public class ToStringDemo {
public static void main(String[] args) {
double d = 858.48;
String s = Double.toString(d);
int dot = s.indexOf('.');
System.out.println(dot + " digits " +
"before decimal point.");
System.out.println( (s.length() - dot - 1) +
" digits after decimal point.");
}
}
Вывод этой программы:
3 digits before decimal point. 2 digits after decimal point.