You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.1 KiB

package com.example.moviecli.command;
import com.example.moviecli.model.Movie;
import com.example.moviecli.repository.MovieRepository;
import com.example.moviecli.view.ConsoleView;
public class SearchCommand implements Command {
private final ConsoleView view;
public SearchCommand(ConsoleView view) {
this.view = view;
}
@Override
public String getName() {
return "search";
}
@Override
public void execute(String[] args, MovieRepository repository) {
if (args.length < 2) {
view.printError("用法: search <关键词>");
return;
}
String keyword = args[1].toLowerCase();
var result = repository.getAll().stream()
.filter(m -> m.getTitle().toLowerCase().contains(keyword))
.toList();
if (result.isEmpty()) {
view.printInfo("没有找到包含 \"" + keyword + "\" 的记录。");
} else {
result.forEach(m -> System.out.println(m.getRank() + ". " + m.getTitle() + " - " + m.getScore()));
}
}
}