Java Language
Консольный ввод-вывод
Чтобы прочитать несколько строк, повторно вызовите scanner.nextLine() :
System.out.println("Please enter your first and your last name, on separate lines."); Scanner scanner = new Scanner(System.in); String firstName = scanner.nextLine(); String lastName = scanner.nextLine(); System.out.println("Hello, " + firstName + " " + lastName + "!");
Существует два метода для получения Strings , next() и nextLine() . next() возвращает текст до первого пробела (также известного как «токен»), а nextLine() возвращает весь текст, введенный пользователем, до нажатия ввода.
Scanner также предоставляет методы утилиты для чтения типов данных, отличных от String . Они включают:
scanner.nextByte(); scanner.nextShort(); scanner.nextInt(); scanner.nextLong(); scanner.nextFloat(); scanner.nextDouble(); scanner.nextBigInteger(); scanner.nextBigDecimal();
Префикс любого из этих методов has (как в hasNextLine() , hasNextInt() ) возвращает значение true если поток имеет больше типа запроса. Примечание. Эти методы приведут к сбою программы, если вход не соответствует запрошенному типу (например, набрав «a» для nextInt() ). Вы можете использовать try <> catch() <> чтобы предотвратить это (см. Исключения )
Scanner scanner = new Scanner(System.in); //Create the scanner scanner.useLocale(Locale.US); //Set number format excepted System.out.println("Please input a float, decimal separator is ."); if (scanner.hasNextFloat())< //Check if it is a float float fValue = scanner.nextFloat(); //retrive the value directly as float System.out.println(fValue + " is a float"); >else < String sValue = scanner.next(); //We can not retrive as float System.out.println(sValue + " is not a float"); >
Использование System.console :
String name = System.console().readLine("Please type your name and press Enter%n"); System.out.printf("Hello, %s!", name); //To read passwords (without echoing as in unix terminal) char[] password = System.console().readPassword();
Преимущества :
Примечание . Это будет работать, только если программа запускается из реальной командной строки без перенаправления стандартных потоков ввода и вывода. Он не работает, когда программа запускается из определенных IDE, например Eclipse. Для кода, который работает в среде IDE и с перенаправлением потока, см. Другие примеры.
Внедрение базового поведения командной строки
Для базовых прототипов или базового поведения в командной строке может понадобиться следующий цикл.
public class ExampleCli < private static final String CLI_LINE = "example-cli>"; //console like string private static final String CMD_QUIT = "quit"; //string for exiting the program private static final String CMD_HELLO = "hello"; //string for printing "Hello World!" on the screen private static final String CMD_ANSWER = "answer"; //string for printing 42 on the screen public static void main(String[] args) < ExampleCli claimCli = new ExampleCli(); // creates an object of this class try < claimCli.start(); //calls the start function to do the work like console >catch (IOException e) < e.printStackTrace(); //prints the exception log if it is failed to do get the user input or something like that >> private void start() throws IOException < String cmd = ""; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while (!cmd.equals(CMD_QUIT)) < // terminates console if user input is "quit" System.out.print(CLI_LINE); //prints the console-like string cmd = reader.readLine(); //takes input from user. user input should be started with "hello", "answer" or "quit" String[] cmdArr = cmd.split(" "); if (cmdArr[0].equals(CMD_HELLO)) < //executes when user input starts with "hello" hello(cmdArr); >else if (cmdArr[0].equals(CMD_ANSWER)) < //executes when user input starts with "answer" answer(cmdArr); >> > // prints "Hello World!" on the screen if user input starts with "hello" private void hello(String[] cmdArr) < System.out.println("Hello World!"); >// prints "42" on the screen if user input starts with "answer" private void answer(String[] cmdArr) < System.out.println("42"); >>
Выравнивание строк в консоли
Метод PrintWriter.format (вызванный через System.out.format ) может использоваться для печати выровненных строк в консоли. Метод получает String с информацией о формате и рядом объектов для форматирования:
String rowsStrings[] = new String[] ; String column1Format = "%-3s"; // min 3 characters, left aligned String column2Format = "%-5.8s"; // min 5 and max 8 characters, left aligned String column3Format = "%6.6s"; // fixed size 6 characters, right aligned String formatInfo = column1Format + " " + column2Format + " " + column3Format; for(int i = 0; i
1 1 1 1234 1234 1234 1234567 1234567 123456 123456789 12345678 123456
Использование форматированных строк с фиксированным размером позволяет печатать строки в виде таблиц с фиксированными размерами:
String rowsStrings[] = new String[] ; String column1Format = "%-3.3s"; // fixed size 3 characters, left aligned String column2Format = "%-8.8s"; // fixed size 8 characters, left aligned String column3Format = "%6.6s"; // fixed size 6 characters, right aligned String formatInfo = column1Format + " " + column2Format + " " + column3Format; for(int i = 0; i
1 1 1 123 1234 1234 123 1234567 123456 123 12345678 123456
Форматирование строк
- %s : просто строка без форматирования
- %5s : форматировать строку с минимум 5 символами; если строка короче, она будет дополнена 5 символами и выровнена вправо
- %-5s : форматировать строку с минимум 5 символами; если строка короче, она будет дополнена 5 символами и выровнена влево
- %5.10s : форматирование строки с минимумом 5 символов и не более 10 символов; если строка короче 5, она будет дополнена 5 символами и выровнена вправо ; если строка длиннее 10, она будет усечена до 10 символов и выровнена вправо
- %-5.5s : форматировать строку с фиксированным размером 5 символов (минимальный и максимальный равны); если строка короче 5, она будет дополнена 5 символами и выровнена влево ; если строка длиннее 5, она будет усечена до 5 символов и выровнена влево
- Начало работы с Java Language
- 2D-графика в Java
- Apache Commons Lang
- API Reflection
- API стека
- AppDynamics и TIBCO BusinessWorks для легкой интеграции
- Autoboxing
- BigDecimal
- BigInteger
- BufferedWriter
- ByteBuffer
- CompletableFuture
- Enum, начиная с номера
- FileUpload для AWS
- FTP (протокол передачи файлов)
- HttpURLConnection
- InputStreams и OutputStreams
- Java Pitfalls — использование исключений
- Java Pitfalls — синтаксис языка
- JavaBean
- Java-агенты
- Java-версии, версии, выпуски и дистрибутивы
- JAXB
- JAX-WS
- JMX
- JNDI
- JShell
- JSON в Java
- LinkedHashMap
- log4j / log4j2
- NIO — Сеть
- NumberFormat
- ServiceLoader
- SortedMap
- Streams
- StringBuffer
- StringBuilder
- sun.misc.Unsafe
- ThreadLocal
- TreeMap и TreeSet
- Varargs (переменный аргумент)
- WeakHashMap
- XJC
- XOM — Объектная модель XML
- Альтернативные коллекции
- Анализ XML с использованием API JAXP
- Аннотации
- Апплеты
- Атомные типы
- аудио
- Безопасность и криптография
- Безопасность и криптография
- Бит-манипуляция
- Валюта и деньги
- Ведение журнала (java.util.logging)
- Видимость (контроль доступа к членам класса)
- Виртуальная машина Java (JVM)
- Виртуальный доступ Java
- Вложенные и внутренние классы
- Возможности Java SE 7
- Возможности Java SE 8
- Выбор коллекций
- Выражения
- Генерация случайных чисел
- Геттеры и сеттеры
- Даты и время (java.time. *)
- Двигатель JavaScript Nashorn
- Дженерики
- Документирование кода Java
- Загрузчики классов
- Защищенные объекты
- Изменение байтового кода
- Инкапсуляция
- Интерфейс Dequeue
- Интерфейс Java Native
- Интерфейс инструмента JVM
- Интерфейсы
- Исключения и обработка исключений
- Исполнители, Исполнительные службы и пулы потоков
- Использование ThreadPoolExecutor в приложениях MultiThreaded.
- Использование других языков сценариев в Java
- Использование ключевого слова static
- Итератор и Итерабель
- Календарь и его подклассы
- Карта Enum
- Карты
- Класс — отражение Java
- Класс EnumSet
- Класс java.util.Objects
- Класс даты
- Класс свойств
- Классы и объекты
- Клонирование объектов
- Кодировка символов
- Коллекции
- Команда Java — «java» и «javaw»
- Команды выполнения
- Компилятор Java — «javac»
- Компилятор Just in Time (JIT)
- Консольный ввод-вывод
- Конструкторы
- литералы
- Локализация и интернационализация
- Лямбда-выражения
- Массивы
- Менеджер по безопасности
- Местное время
- Местный внутренний класс
- Методы и конструкторы классов объектов
- Методы по умолчанию
- Методы сбора коллекции
- Модель памяти Java
- Модификаторы без доступа
- Модули
- наборы
- наследование
- Настройка производительности Java
- Неизменяемые объекты
- Неизменяемый класс
- Необязательный
- Новый ввод-вывод файлов
- Обработка аргументов командной строки
- Общие ошибки Java
- Одиночки
- операторы
- Операции с плавающей точкой Java
- Ориентиры
- Основные управляющие структуры
- Отправка динамического метода
- Оценка XML XPath
- Очереди и Deques
- Ошибки Java — Nulls и NullPointerException
- Ошибки Java — потоки и параллелизм
- Ошибки Java — проблемы с производительностью
- пакеты
- Параллельное программирование (темы)
- Параллельное программирование с использованием структуры Fork / Join
- Параллельные коллекции
- Перечисления
- Полиморфизм
- предпочтения
- Преобразование в строки и из них
- Преобразование типа
- Примитивные типы данных
- Процесс
- Путь Класса
- Разборка и декомпиляция
- Развертывание Java
- Разделение строки на части с фиксированной длиной
- Реализации Java-плагинов
- Регулярные выражения
- Рекурсия
- Ресурсы (на пути к классам)
- Розетки
- Свободный интерфейс
- Сериализация
- сетей
- сканер
- Служба печати Java
- Создание изображений программно
- Создание кода Java
- Сокеты Java
- Списки
- Список против SET
- Сравнение C ++
- Сравнительный и компаратор
- Ссылки на объекты
- Стандарт официального кода Oracle
- Строковый токенизатор
- Струны
- супер ключевое слово
- Тестирование устройства
- Типы ссылок
- Типы ссылочных данных
- Удаленный вызов метода (RMI)
- Управление памятью Java
- Установка Java (стандартная версия)
- Утверждая
- Файловый ввод-вывод
- Файлы с несколькими релизами JAR
- Флаги JVM
- Функциональные интерфейсы
- Хеш-таблица
- Читатели и писатели
- Шифрование RSA