这是我的第一个问题。我是一个学习商业管理,并开始学习java只是为了好玩。我正在芬兰大学做MOOC课程。我正在练习101.我必须为具有书籍搜索功能的图书馆编程。可以按标题,出版商或年份进行搜索。
我唯一的想法是(那些不起作用):
public ArrayList<Book> searchByPublisher(String publisher){
ArrayList<Book> found = new ArrayList<Book>();
if (bibo.contains(publisher)){
found.add(bibo.get(bibo.indexOf(publisher)));
}
return found;
或:
public ArrayList<Book> searchByTitle(String title){
ArrayList<Book> found = new ArrayList<Book>();
String [] neueListe = new String[bibo.size()];
for (int i = 0; i < bibo.size(); i++){
neueListe[i] = bibo.get(i).toString();
found.add(neueListe[i].toString());
}
return found;
"bibo"
是ArrayList
的书籍。
我在互联网上搜索了想法和解决方案,当然在GitHub上遇到了几个。但是我发现的每个代码都使用了同样的想法:
for(Book i : this.bibo){
if(StringUtils.included(i.title(), title)){
found.add(i);
}
在课程中从未使用StringUtils.included
,我的NetBeans版本不知道它。
哪里是我的推理错误?
首先非常感谢: - )
答案 0 :(得分:1)
StringUtils
是第三方库形式Apache Commons Lang
。如果你想使用这个类,你应该在Netbeans中将Apache Commons Lang
添加到你的项目中
本教程介绍如何在Netbeans中添加Apache Commons:
https://www.satollo.net/netbeans-apache-commons-and-commons-javadoc-for-auto-completion
答案 1 :(得分:0)
中的问题
public ArrayList<Book> searchByPublisher(String publisher){
ArrayList<Book> found = new ArrayList<Book>();
if (bibo.contains(publisher)){
found.add(bibo.get(bibo.indexOf(publisher)));
}
return found;
是你问bibo
是否包含String
,而你应该询问它是否包含哪个发布者字段等于该字符串的书(searchByPubisher的输入)。
public ArrayList<Book> searchByPublisher(String publisher){
ArrayList<Book> found = new ArrayList<Book>();
for(Book b: bibo){
if(b.getPublisher().equals(publisher))
found.add(b);
}
return found;
}
searchByTitle
功能可以类似地实现。
我还要提到你也可以使用Streams
来完成这项工作。
(因为你正在学习java
)以下内容应足以让你自己动手:
List<Book> found =
bibo.stream()
.filter(b -> t.getPublisher().equals(publisher))
.collect(toList());
希望这有帮助。
答案 2 :(得分:0)
我会这样做。
public ArrayList<Book> searchByTitle(String title){
ArrayList<Book> found = new ArrayList<Book>();
for (Book book: bibo) {
if(book.title.contains(title)) {
found.add(book);
}
}
return found;
当您有更多java体验时,您还可以查看Java 8 Streams和过滤器函数。 Java 8 Streams example
答案 3 :(得分:0)
StringUtils是org.apache.commons.lang库中的一个类