Как реализовать пустой ввод, используя java.util.Scanner

Рейтинг: 0Ответов: 1Опубликовано: 31.01.2023

Подскажите, пожалуйста, есть ли возможность получить пустой токен в java.util.Scanner? Например, я установил разделитель "]". Использую метод next(), ввожу один этот символ и ничего не происходит, то есть так как до разделителя ничего нет, он не попадает в токен. Если я введу повторно, то поймает перенос строки и ввод засчитается. Моя же цель заключается в том, чтобы после ввода разделителя ввод прекратился бы сразу, чтобы не было необходимости что-либо вставлять перед разделителем. То есть, реализовать пустой ввод.

package test;

import java.util.Scanner;

public class Test {
  public static void main(String[] args) {
    
    Scanner scanner = new Scanner(System.in);
    scanner.useDelimiter("]");
    String input = scanner.next();
    
    scanner.close();
    
    System.out.println(input);
  }
}

введите сюда описание изображения

Ответы

▲ 0

Введите два разделителя подряд и у вас будет пустой токен.

public static void main(String[] args) {
    try (Scanner scanner = new Scanner("]]").useDelimiter("]")) {
        String input = scanner.next();
        System.out.println("'" + input + "' is empty? " + input.isEmpty());
    }        
}
'' is empty? true