Как можно преобразовать консольный ввод System.in в Stream из символов.
Пробовал такую комбинацию:
new BufferedReader(new InputStreamReader(System.in)).lines()
Но проблема что он выдают всю строку, а не поток символов, например я не могу ее обрезать с помощью limit(). Для уточнения скажу что хочу брать из консоли число и превращать его в массив int. Пробовал такой способ, но он так-же берёт числа одним куском и в добавок обрезает нули в начале если они были.
IntStream.of(new Scanner(System.in).nextInt()).limit(4).forEach(System.out::println)
Хотелось бы вытягивать из ввода числа посимвольно с помошью стрима и потом где-то на промежуточном этапе превращать в int и под конец складывать в массив.
Спасибо всем за ответы, решил следующим образом:
int[] inArr = new BufferedReader(new InputStreamReader(System.in))
.readLine()
.chars()
.filter(Character::isDigit)
.map(Character::getNumericValue)
.limit(3)
.toArray();
Можно сделать так:
String str = "hello world";
str
.chars()
.mapToObj(e -> (char) e)
.limit(3)
.forEach(System.out::println);
Вывод:
h
e
l
В девятке этот вопрос решается элементарно:
int[] ints = new Scanner(System.in)
.tokens()
.flatMapToInt(String::chars)
.filter(Character::isDigit)
.map(Character::getNumericValue)
.limit(4)
.toArray();
В восьмёрке придётся немного извернуться:
public class Example {
public static Stream<String> scannerStream(Scanner scanner) {
Spliterator<String> spliterator
= Spliterators.spliterator(scanner,
Long.MAX_VALUE,
Spliterator.ORDERED | Spliterator.NONNULL);
return StreamSupport.stream(spliterator, false)
.onClose(scanner::close);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] ints = scannerStream(scanner)
.flatMapToInt(String::chars)
.filter(Character::isDigit)
.map(Character::getNumericValue)
.limit(4)
.toArray();
System.out.println(Arrays.toString(ints));
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости