Другие языки программирования и технологии
Java ввод данных из консоли
System.out.println("Введите два числа"); a = (double) System.in.read(); b = (double) System.in.read(); Ввожу, например, 1 и 2, а он считывает 49 и 32. 2 и 3 -> 50 и 32 3 и 4 -> 51 и 32 Как-то так. Что делаю неправильно?
Может так проще?
Scanner sc=new Scanner(System.in);
double num1=sc.nextDouble();
double num2=sc.nextDouble();
Scanner sc=new Scanner(System.in);
double num1=sc.nextDouble();
double num2=sc.nextDouble();
50 ето ASCII код символа "2" 32 ето пробел ))
вот наверно то что нужно:
Работа приложения Java с консолью
--------------------------------------------
byte bKbd[ ] = new byte[ 256 ];
int iCnt = 0;
String szStr = "";
Массив байт bKbd заполняется символами, введенными с клавиатуры. В переменную iCnt записывается количество этих символов. И, наконец, в переменной szStr хранится строка, сформированная из массива bKbd.
Ввод символов с клавиатуры выполняется методом read:
try
{
iCnt = System.in.read(bKbd);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
Пользуясь этой информацией, мы формируем из массива введенных символов текстовую строку класса String:
szStr = new String(bKbd, 0, iCnt);
Далее мы удаляем из строки все служебные символы (в частности, символы возврата каретки и перевода строки) :
szStr = szStr.trim();
вот наверно то что нужно:
Работа приложения Java с консолью
--------------------------------------------
byte bKbd[ ] = new byte[ 256 ];
int iCnt = 0;
String szStr = "";
Массив байт bKbd заполняется символами, введенными с клавиатуры. В переменную iCnt записывается количество этих символов. И, наконец, в переменной szStr хранится строка, сформированная из массива bKbd.
Ввод символов с клавиатуры выполняется методом read:
try
{
iCnt = System.in.read(bKbd);
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
Пользуясь этой информацией, мы формируем из массива введенных символов текстовую строку класса String:
szStr = new String(bKbd, 0, iCnt);
Далее мы удаляем из строки все служебные символы (в частности, символы возврата каретки и перевода строки) :
szStr = szStr.trim();
Если я не ошибаюсь, то System.in.read() считывает код введенного символа. Попробуйте считать число как строку:
try {
BufferedReader Inner = new BufferedReader(new InputStreamReader(System.in));
String JStr = Inner.readLine();
} catch (IOException eX) {}
...
А потом, пропарсить ее:
try {
int a = Integer.parseInt(JStr);
} catch (NumberFormatException eX) {}
try {
BufferedReader Inner = new BufferedReader(new InputStreamReader(System.in));
String JStr = Inner.readLine();
} catch (IOException eX) {}
...
А потом, пропарсить ее:
try {
int a = Integer.parseInt(JStr);
} catch (NumberFormatException eX) {}
Создай объект типа BufferedReader, и с помощью него вводи, самый топ способ. всегда им пользуюсь
Создаём объект
BufferedReder reader= new BufferedReader(new InputStreamReader(System.in));
У объекта одна особенность, он считывает только строки на сколько я знаю. Считывание строки с консоли:
String s = reader.readLine();
Чтобы переделать строку в число
int a = Integer.parseInt(s);
Или сразу пишешь в сокращённой форме
int a = Integer.parseInt(reader.readLine());
Создаём объект
BufferedReder reader= new BufferedReader(new InputStreamReader(System.in));
У объекта одна особенность, он считывает только строки на сколько я знаю. Считывание строки с консоли:
String s = reader.readLine();
Чтобы переделать строку в число
int a = Integer.parseInt(s);
Или сразу пишешь в сокращённой форме
int a = Integer.parseInt(reader.readLine());
Очень полезная штука:
Класс Scanner имеет еще ряд методов, которые позволяют получить введенные пользователем значения:
next(): считывает введенную строку до первого пробела
nextLine(): считывает всю введенную строку
nextInt(): считывает введенное число int
nextDouble(): считывает введенное число double
hasNext(): проверяет, было ли введено слово
hasNextInt(): проверяет, было ли введено число int
hasNextDouble(): проверяет, было ли введено double
Класс Scanner имеет еще ряд методов, которые позволяют получить введенные пользователем значения:
next(): считывает введенную строку до первого пробела
nextLine(): считывает всю введенную строку
nextInt(): считывает введенное число int
nextDouble(): считывает введенное число double
hasNext(): проверяет, было ли введено слово
hasNextInt(): проверяет, было ли введено число int
hasNextDouble(): проверяет, было ли введено double
Если я не ошибаюсь, то System.in.read() считывает код введенного символа. Попробуйте считать число как строку:
try {
BufferedReader Inner = new BufferedReader(new InputStreamReader(System.in));
String JStr = Inner.readLine();
} catch (IOException eX) {}
...
А потом, пропарсить ее:
try {
int a = Integer.parseInt(JStr);
} catch (NumberFormatException eX) {}
смайлики
try {
BufferedReader Inner = new BufferedReader(new InputStreamReader(System.in));
String JStr = Inner.readLine();
} catch (IOException eX) {}
...
А потом, пропарсить ее:
try {
int a = Integer.parseInt(JStr);
} catch (NumberFormatException eX) {}
смайлики
Похожие вопросы
- Как в C# скрыть ввод и вывод данных в консоль?
- C++ Проверка правильности ввода данных.
- Процедуры в PascalABC.NET. Ввод данных
- Как написать свою программу для ввода данных, чтоб потом эти данные сохранялись в определённом тхт файле
- Как реализовать проверку ввода данных на C++?
- C++(консоль) Программа, которая выводит данные треугольников со стороной максимум 5000
- Что конкретно пишут на языке Java? Над чем работают ?
- С++ Проверка на некорректный ввод значения переменной
- Проблема с Java
- JAVA - Server - Socket как обнаружить разрыв соединения.. Метод какой-нить есть?