Для введення даних використовується клас
Цей клас треба імпортувати у тій програмі, де він використовуватиметься. Це робиться до початку відкритого класу у коді програми. У класі є методи читання чергового символу заданого типу зі стандартного потоку введення, і навіть перевірки існування такого символу. Для роботи з потоком введення необхідно створити об'єкт класу Scanner , при створенні вказавши, з яким потоком введення він буде пов'язаний. Стандартний потік введення (клавіатура) Java представлений об'єктом —
Scannerіз бібліотеки пакетів Java.
Цей клас треба імпортувати у тій програмі, де він використовуватиметься. Це робиться до початку відкритого класу у коді програми. У класі є методи читання чергового символу заданого типу зі стандартного потоку введення, і навіть перевірки існування такого символу. Для роботи з потоком введення необхідно створити об'єкт класу Scanner , при створенні вказавши, з яким потоком введення він буде пов'язаний. Стандартний потік введення (клавіатура) Java представлений об'єктом — System.in. А стандартний потік виведення (дисплей) – вже знайомим вам об'єктом System.out. Є ще стандартний потік для виведення помилок System.err, але робота з ним виходить за рамки нашого курсу.
import java.util.Scanner; // импортируем класс
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // создаём об'єкт класса Scanner
int i = 2;
System.out.print("Введите целое число: ");
if(sc.hasNextInt()) { // возвращает истину если с потока ввода можно считать целое число
i = sc.nextInt(); // считывает целое число с потока ввода и сохраняем в переменную
System.out.println(i*2);
} else {
System.out.println("Вы ввели не целое число");
}
}
}
Метод hasNextDouble(), застосований об'єкту класу Scanner, перевіряє, чи можна вважати з потоку введення дійсне число типу double, а метод nextDouble()- зчитує його. Якщо спробувати рахувати значення без попередньої перевірки, під час виконання програми можна отримати помилку (налагоджувач заздалегідь таку помилку не виявить). Наприклад, спробуйте у поданій далі програмі ввести якесь речове число:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double i = sc.nextDouble(); // если ввести букву s, то случится ошибка во время исполнения
System.out.println(i/3);
}
} Є також спосіб nextLine(), що дозволяє зчитувати цілу послідовність знаків, тобто. рядок, отже, отримане через цей метод значення потрібно зберігати в об'єкті класу String. У наступному прикладі створюється два таких об'єкти, потім у них по черзі записується введення користувача, а далі на екран виводиться один рядок, отриманий об'єднанням введених послідовностей символів.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1, s2;
s1 = sc.nextLine();
s2 = sc.nextLine();
System.out.println(s1 + s2);
}
} Існує і метод hasNext(), що перевіряє чи залишабося в потоці введення якісь символи. У класі Stringіснує маса корисних методів, які можна застосовувати до рядків (перед ім'ям методу вказуватимемо тип того значення, яке він повертає):
int length()— повертає довжину рядка (кількість символів у ньому);boolean isEmpty()- перевіряє, чи порожній рядок;String replace(a, b)- Повертає рядок, де символ a (літерал або змінна типу char) замінений на символ b;String toLowerCase()- Повертає рядок, де всі символи вихідного рядка перетворені до малих;String toUpperCase()— повертає рядок, де всі символи вихідного рядка перетворені на великі;boolean equals(s)— повертає істинну, якщо рядок до якого застосований метод, збігається з рядком s вказаним у аргументі методу (за допомогою оператора==рядка порівнювати не можна, як і будь-які інші об'єкти);int indexOf(ch)— повертає індекс символу ch у рядку (індекс – це порядковий номер символу, але нумеруватися символи починають з нуля). Якщо символ не буде знайдено, то поверне -1. Якщо символ зустрічається кілька разів, то поверне індекс його першого входження.int lastIndexOf(ch)— аналогічний до попереднього методу, але повертає індекс останнього входження, якщо смивол зустрівся у рядку кілька разів.int indexOf(ch,n)— повертає індекс символу ch у рядку, але починає перевірку з індексу n (індекс – це порядковий номер символу, але нумеруватися символи починають з нуля).char charAt(n)— повертає код символу, що знаходиться в рядку під індексом n (індекс – це порядковий номер символу, але нумеруватися символи починають з нуля).
public class Main {
public static void main(String[] args) {
String s1 = "firefox";
System.out.println(s1.toUpperCase()); // выведет «FIREFOX»
String s2 = s1.replace('o', 'a');
System.out.println(s2); // выведет «firefax»
System.out.println(s2.charAt(1)); // выведет «i»
int i;
i = s1.length();
System.out.println(i); // выведет 7
i = s1.indexOf('f');
System.out.println(i); // выведет 0
i = s1.indexOf('r');
System.out.println(i); // выведет 2
i = s1.lastIndexOf('f');
System.out.println(i); // выведет 4
i = s1.indexOf('t');
System.out.println(i); // выведет -1
i = s1.indexOf('r',3);
System.out.println(i); // выведет -1
}
}
Приклад програми, яка виведе на екран індекси всіх прогалин у рядку, введений користувачем з клавіатури:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
for(int i=0; i < s.length(); i++) {
if(s.charAt(i) == ' ') {
System.out.println(i);
}
}
}
}Посилання на першоджерело: Потоки введення/виводу та рядки в Java
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ