Ввод командной строки java

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
Читайте также:  Str to char java

Источник

Оцените статью