Java 在arrayList中搜索和打印
因此,我编写了一个方法来在arrayList中搜索标题中的特定单词(标题是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
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()的方法。”。