Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在arrayList中搜索和打印_Java_Search_Arraylist - Fatal编程技术网

Java 在arrayList中搜索和打印

Java 在arrayList中搜索和打印,java,search,arraylist,Java,Search,Arraylist,因此,我编写了一个方法来在arrayList中搜索标题中的特定单词(标题是arrayList类型书籍中的一个元素)。然后我需要打印包含该单词的标题。以下是我的代码: public void getBook(ArrayList<Book> books) { // find and create new arraylist with just books with "cat" for (Book b : books) { for (int i = 0; i

因此,我编写了一个方法来在arrayList中搜索标题中的特定单词(标题是arrayList类型书籍中的一个元素)。然后我需要打印包含该单词的标题。以下是我的代码:

public void getBook(ArrayList<Book> books) {
    // find and create new arraylist with just books with "cat"
    for (Book b : books) {
        for (int i = 0; i < books.size(); i++) {
            if (b.getTitle().contains("cat")) {

                System.out.println(b.getTitle());
            }
        }
    }
}
public void getBook(ArrayList books){
//查找并创建新的arraylist,其中仅包含带有“cat”的书籍
(b册:书籍){
对于(int i=0;i

因此,在这一点上,没有打印任何内容。这是我的循环中的错误吗?还是我的搜索和打印不正确?

如果您只是在
数组列表中查找单个单词,则不需要嵌套for循环。在您的情况下,标题将打印多次,因为它位于嵌套循环中

否则,我看不出这个代码有任何错误。我建议添加一个
System.out.println(b.getTitle())
以查看通过的标题

试试下面的代码,看看你得到了什么结果。这将检查程序中的其他内容是否正确

public void getBook(ArrayList<Book> books) {
    for (Book b : books) {
        System.out.println(b.getTitle());
        if (b.getTitle().contains("cat")) {
            System.out.println("Found successfully");
        }
    }
}
public void getBook(ArrayList books){
(b册:书籍){
System.out.println(b.getTitle());
if(b.getTitle().contains(“cat”)){
System.out.println(“成功找到”);
}
}
}

如果未打印标题,则您的
书籍
类或如何设置
数组列表

可能存在问题。如果您只是在
数组列表中查找单个单词,则不需要嵌套for循环。在您的情况下,标题将打印多次,因为它位于嵌套循环中

否则,我看不出这个代码有任何错误。我建议添加一个
System.out.println(b.getTitle())
以查看通过的标题

试试下面的代码,看看你得到了什么结果。这将检查程序中的其他内容是否正确

public void getBook(ArrayList<Book> books) {
    for (Book b : books) {
        System.out.println(b.getTitle());
        if (b.getTitle().contains("cat")) {
            System.out.println("Found successfully");
        }
    }
}
public void getBook(ArrayList books){
(b册:书籍){
System.out.println(b.getTitle());
if(b.getTitle().contains(“cat”)){
System.out.println(“成功找到”);
}
}
}

如果未打印标题,则您的
书籍
类或如何设置
数组列表可能存在问题。不幸的是,字符串没有.equalsIgnoreCase()这样的方法。因此,首先需要将标题转换为小写或大写。通过这种方式,您可以找到包含特定单词的标题

public static void main(String[] args) {
        ArrayList<Book> books = new ArrayList();
        books.add(new Book("The mistery of cat"));
        books.add(new Book("Category"));
        books.add(new Book("Titanic"));
        books.add(new Book("Adjudicated"));
        getBook(books);
}

public static void getBook(ArrayList<Book> books) {
    for (Book b : books) {
        if (b.getTitle().toLowerCase().contains("cat")) {
            System.out.println(b.getTitle());
        }
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList books=新建ArrayList();
新增(新书(“猫的迷雾”);
图书。添加(新书(“类别”);
新增(新书(“泰坦尼克号”);
书籍。添加(新书(“裁决”);
获取书籍;
}
公共静态无效getBook(ArrayList books){
(b册:书籍){
如果(b.getTitle().toLowerCase()包含(“cat”)){
System.out.println(b.getTitle());
}
}
}
您将获得:

猫的迷雾, 类别 判决


不幸的是,字符串没有.equalsIgnoreCase()这样的方法。因此,首先需要将标题转换为小写或大写。通过这种方式,您可以找到包含特定单词的标题

public static void main(String[] args) {
        ArrayList<Book> books = new ArrayList();
        books.add(new Book("The mistery of cat"));
        books.add(new Book("Category"));
        books.add(new Book("Titanic"));
        books.add(new Book("Adjudicated"));
        getBook(books);
}

public static void getBook(ArrayList<Book> books) {
    for (Book b : books) {
        if (b.getTitle().toLowerCase().contains("cat")) {
            System.out.println(b.getTitle());
        }
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList books=新建ArrayList();
新增(新书(“猫的迷雾”);
图书。添加(新书(“类别”);
新增(新书(“泰坦尼克号”);
书籍。添加(新书(“裁决”);
获取书籍;
}
公共静态无效getBook(ArrayList books){
(b册:书籍){
如果(b.getTitle().toLowerCase()包含(“cat”)){
System.out.println(b.getTitle());
}
}
}
您将获得:

猫的迷雾, 类别 判决


因此,当我尝试该代码时,它只打印整个arrayList中的所有标题,而不是包含特定单词的标题。对我来说,这表明它实际上没有找到这个词,即找到“if”语句。因此,在原始列表中显示了带有“cat”的标题,但没有显示“Found successfully”?显示了所有标题,包括带有和不带cat的标题,但从未打印成功。您的
getTitle()
方法看起来像什么?它是否返回一个
String
?是的,getTitle()返回一个String,因此当我尝试该代码时,它只打印整个arrayList中的所有标题,而不是包含特定单词的标题。对我来说,这表明它实际上没有找到这个词,即找到“if”语句。因此,在原始列表中显示了带有“cat”的标题,但没有显示“Found successfully”?显示了所有标题,包括带有和不带cat的标题,但从未打印成功。您的
getTitle()
方法看起来像什么?它是否返回一个
String
?是的,getTitle()返回一个stringstring类具有
equalsIgnoreCase
对不起,我试图说“strings没有类似于.equalsIgnoreCase()的其他方法”@Hasho,更新代码并删除这一行`strings没有类似于.equalsIgnoreCase()的方法)“.string类具有
equalsIgnoreCase
抱歉,我试图说“strings没有类似于.equalsIgnoreCase()的其他方法”@Hasho,更新代码并删除这一行`strings没有类似于.equalsIgnoreCase()的方法。”。