Домашно Java StreamApi- Само 2 задачи ?!
Дали е станала грешка с качването на домашното или наистина са само 2 задачи ?
Дали е станала грешка с качването на домашното или наистина са само 2 задачи ?
Да, много малко и много лесни задачи, за такава дебела тема.
Понеже темата е сравнително нова, вероятно материалите все още са в процес на изготвяне. Сигурно ще бъдат добавени още задачи, в какви срокове - не мога да кажа.
За тренировка може да решавате задачи от Advanced C#. Общо взето задачи, които могат да се решат с ламбда изрази там, може да се преведат до стриймове в Java, примерно някакво сортиране на речник по стойност или нещо подобно.
За да не отварям нова тема ще използвам тази.
За първата задача може ли да ме упътите как ако няма стринг с дължина по-голяма от 3 чара да изписва empty. От одеве ме тормози :D
То трябва да изпише просто нов празен ред, не че се иска да се изпише (empty) :D
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
String[] array = input.split(" ");
ArrayList<String> asd = (ArrayList) Arrays.stream(array).filter(str -> str.length()>3).collect(Collectors.toList());
if(asd.isEmpty()==true){ System.out.println("empty");}
else {for (String string : asd) {
System.out.print(string+" ");
}}
Може би е малко дълго но не се сетих за друг начин
Ето така би трябвало да стане:
import java.util.Arrays;
import java.util.Scanner;
public class Problem1FilterArray {
public static void main(String[] args) {
Scanner scann = new Scanner(System.in);
String[] input = scann.nextLine().split("\\s+");
if(input.length<3){
System.out.println("The input must be at least 3 characters!");
} else {
Arrays.stream(input)
.filter(p -> p.length() > 3)
.forEach(p -> System.out.print(p + " "));
}
}
}