Через консоль вводится текстовая информация – набор символов. Например, когда мы хотим ввести число 125, нам нужно ввести текст, состоящий из 3 последовательных символов «1», «2», «5». А чтобы из 3 символов собрать одно число, нужно применить конвертацию. В случае конвертации из текста в числа в Java применяют методы семейства parse. Например, вот так ранее введенные строки s1, s2, s3 превратятся в вещественные числа:
// конвертируем введенные строки в вещественные числа
a = Double.parseDouble(s1);
b = Double.parseDouble(s2);
c = Double.parseDouble(s3);
Для получения из строки вещественного числа используется метод Double.parseDouble(строка).
Для получения из строки целого числа используется метод
Integer.parseInt(строка).
Аналогичные методы parseXxxx() существуют для других стандартных типов.
Когда требуется обратная конвертация – из чисел в строку, – чаще всего используют неявный вызов метода toString(), который вызывается всякий раз, когда требуется привести какой-либо тип к строке. Например, как здесь:
// вывод значений корней
System.out.println("x1=" + x1);
System.out.println("x2=" + x2);
Рассмотрим подробно код внутри println("x1=" + x1)
По сути, выражение ("x1=" + x1) содержит операцию конкатенации (склеивания) двух строк “x1=” и той, которая получится из x1.
Поскольку x1 имеет тип double, то чтобы получить из него строку, к нему неявно применяется конвертация. Выглядит на самом деле это так:
“x1=" + Double.toString(x1));
Заметим, что метод toString() есть у каждого класса и типа Java, и поэтому любую переменную любого типа всегда можно автоматически конвертировать в строку. Но можно это сделать и вручную, как показано в примере ниже. Здесь вводятся целые числа N и M, вычисляется их произведение и выводится на экран. Например, при вводе N=2, M=5 будет выведена строка «P = 10»:
// main() – точка входа в программу
// throws IOException – сообщаем, что метод main()
// может выбрасывать исключения ввода/вывода
public static void main(String[] args) throws IOException {
// Объявили переменные n и m
int n, m;
//Создаем объект br для чтения данных из консоли
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
//Читаем из консоли N
// выводим приглашение к вводу N
System.out.print("Введите n: ");
//Читаем из консоли строку
String sN = br.readLine();
//конвертируем строку в число
n = Integer.parseInt(sN);
//Читаем из консоли M
// выводим приглашение к вводу M
System.out.print("Введите m: ");
// Читаем из консоли строку
String sM = br.readLine();
//конвертируем строку в число
m = Integer.parseInt(sM);
//Вычисляем произведение
int p = n * m;
//Готовим строку из числа p и выводим результат
// Конвертируем целое число p в строку sP
String sP = Integer.toString(p);
// Выводим строку sP в консоль
System.out.println("p = " + sP);
}
Пример – вычисление корней квадратного уравнения
Соберем все касающееся вычисления корней квадратного уравнения вместе и приведем весь код, который по введенным значениям коэффициентов a, b, c вычисляет и выводит корни квадратного уравнения.
// импорт=подключение необходимых классов
import java.io.BufferedReader;
import java.io.InputStreamReader;
// класс программы
public class Class2 {
// main() – точка входа в программму
// throws Exception – сообщаем, что метод main()
// может выбрасывать исключения
public static void main(String[] args) throws Exception {
// объявляем все необходимые переменные
double a, b, c;
double D;
double x1, x2;
//Создаем объект br для чтения данных из консоли
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
// Ввод A
// выводим приглашение к вводу A
System.out.print("A=");
//Читаем из консоли строку
String s1 = br.readLine();
// Ввод B
// выводим приглашение к вводу B
System.out.print("B=");
//Читаем из консоли строку
String s2 = br.readLine();
// Ввод C
// выводим приглашение к вводу C
System.out.print("C=");
//Читаем из консоли строку
String s3 = br.readLine();
// конвертируем введенные строки в вещественные числа
a = Double.parseDouble(s1);
b = Double.parseDouble(s2);
c = Double.parseDouble(s3);
// вычисление дискриминанта
D = b * b – 4 * a * c;
// вычисление корней
x1 = (–b – Math.sqrt(D)) / (2 * a);
x2 = (–b + Math.sqrt(D)) / (2 * a);
// вывод значений корней
System.out.println("x1=" + Double.toString(x1));
System.out.println("x2=" + x2);
}
}
Дата: 2019-02-25, просмотров: 268.