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
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()));
|
|
}
|
|
}
|
|
}
|