Pobieranie String przy użyciu Scanner

0

Mam dwie klasy jedna to TestUser :

public class TestUser {

	
	public static List<User> filterUsers (List<User> users, Predicate<User> predicate) {
	    return users.stream().filter( predicate ).collect(Collectors.<User>toList());
	}	
	
	public static Predicate<User> age(String name){
		return u -> u.getAge()>0 && u.getName()==name; 
		}
	
	
}
 

Druga to START:

 
public class START {

	private static Scanner sc;
	
	
	public static void main(String[] args) {
	
		
		User u1 = new User("Konrad", 30, true);
		User u2 = new User("Janek", 20, false);
		User u3 = new User("Konrad", 45, true);
		User u4 = new User("Tomasz", 50, false);
		User u5 = new User("Michal", 18, true);

		List<User> userList = new ArrayList<User>();
		userList.add(u1);
		userList.add(u2);
		userList.add(u3);
		userList.add(u4);
		userList.add(u5);
	
		sc = new Scanner(System.in);
		String next = sc.next();
		
		List<User> filterUsers = filterUsers(userList, age(next));
		
		for(User u:filterUsers){
		System.out.println(u.toString());
		}
		
		System.out.println("KONIEC");
	}
}

Problem polega na tym że metoda filterUsers nie czyta mi zmiennej next. Dostaje pustą tablicę. Jeżeli zamiast next wstawie zmienna w takiej formie - "????" wszystko działa OK.
Co moze byc przyczyna tego że

 
String next = sc.next();

to pusty String dla metody filterUsers ?

0

może zmień next() na nextLine()

0

Nie pomogła zmiana na nextLine. Poniżej wrzucam dwa debugi jeden ze zmienna next drugi z wpisana wartością w metode.

debugnext.PNG

debugString.PNG

1 użytkowników online, w tym zalogowanych: 0, gości: 1