Друзья!
Кто хочет освоить Java с помощью видеоуроков на русском языке, добро пожаловать на сайт
http://itlift.ru/category/javaЗдесь же Вы сможете найти и другой обучающий контент по информационным технологиям: электронному бизнесу, архитектуре приложений и .NET.
Ждем Ваших отзывов и предложений!
В Паскале есть возможность вводить данные с клавиатуры. Такая возможность позволяет придумывать различные задачки.
В Javа ввод затруднителен, обычно используется класс InputStreamReader.
Код:
InputStreamReader = new InputStreamReader(System.in)
BufferedReader klaviatura = new BufferedReader(potok);
или
Код:
BufferedReader klaviatura = new BufferedReader(
new InputStreamReader(System.in));
Здесь InputStreamReader - имя объекта потока, который формирует байтовый поток. Но в программу надо передать данные не байтами, а всю введенную строку сразу. Поэтому создается еще один объект класса BufferedReader - буфер, накапливающий введенные символы и формирующий строку ввода. Уж очень много классов создается. Пример программы
Код:
import java.io.*; //подключаем библиотеку ввода/вывода io
public class Vvod {
public static void main(String[] args) throws Exception{
InputStreamReader potok= new InputStreamReader(System.in);
BufferedReader klaviatura = new BufferedReader(potok);
String strName, strSecondName; // Описываем переменные типа строка
System.out.print("Напишите свое имя: ");
strName=klaviatura.readLine(); //читаем строчку, используя об-т klaviatura
System.out.print("Напишите свою фамилию: ");
strSecondName=klaviatura.readLine(); //читаем строчку, используя об-т klaviatura
System.out.print("Я вас знаю. Вы " + strName+ " " + strSecondName);
}
}
Но в начале обучения циклам и условным операторам трудно объяснять зачем используются два класса для ввода, и вообще что такое класс.
Поэтому я использую об-т типа Scanner из библиотеки java.util.Scanner. Хотя и здесь надо в начале создать об-т типа Scanner, но как-то все яснее. Пример программки
Код:
import java.util.Scanner; // подключаем класс Scanner
public class Vvod {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.print("Введите строку из символов: ");
String strInput = myScanner .next();
strInput = strInput + "строка";
System.out.println("Строка strInput = " + strInput);
System.out.print("Введите число типа Double: ");
double numberDouble = myScanner .nextDouble();
numberDouble = numberDouble + 25.00;
System.out.println("Действительное число = " + numberDouble);
System.out.print("Введите число типа int: ");
int numberInt = myScanner .nextInt();
numberInt = numberInt + 100;
System.out.print("Целое число = " + numberInt);
myScanner.close();
}
}
Прикол от Scanner. Если на компе региональные настройки - русские, то действительные числа надо вводить не сточкой, а с запятой.
Мне кажется, что использование класса Scanner удобнее и позволяет ввод трансформировать в нужный тип, используя методы next, nextInt, nextDouble объекта Scanner