在数组列表中搜索字符串(Java)

时间:2015-12-09 12:23:00

标签: java string arraylist

我创建了一个在数组列表中搜索字符串的方法,但问题是,如果我搜索一本书,它必须是它输入数组列表的确切方式。

例如,如果我输入"哈利波特"作为一本书的标题并搜索它,我必须加入"哈利波特",我不能把"哈利波特"或者" HARRY POTTER"因为它不会识别它,我知道有一种称为忽略的情况,但无法使其工作,或者可能在错误的地方使用它。 / p>

我的代码:

public void searchBook() {

    System.out.println("\n"+"Enter the title of the book you would like to search for: ");
    String search = input.nextLine();

    for (int i = 0; i < newBook.size(); i++) {

        // IF statement to check that any book in the array list equals what
        // the user has typed in
        if ( newBook.get(i).getTitle().equals(search)  ) {

            System.out.println(("Book ID: " + newBook.get(i).getBookID() + "  Title: " + newBook.get(i).getTitle()
                    + "    Author: " + newBook.get(i).getAuthor() + "  Genre: " + newBook.get(i).getGenre()
                    + "   Date registered: " + newBook.get(i).getDateReg() + "   Loan Status: "
                    + newBook.get(i).getLoan() + "    Number of times loaned: " + newBook.get(i).getNumOfLoans()));

        } else {

            System.out.println("No match was found");
        }

    } // end of for

}// end of method

3 个答案:

答案 0 :(得分:3)

更改

if (newBook.get(i).getTitle().equals(search)

if (newBook.get(i).getTitle().equalsIgnoreCase(search)

equalsIgnoreCase执行字符串比较忽略大小写。

答案 1 :(得分:1)

使用equalsIgnoreCase()代替equals()

阅读文档here

来自javadoc的

  

将此String与另一个String进行比较,忽略大小写。   如果它们是相同的,则认为两个字符串忽略大小写   两个字符串中的长度和对应字符是相等的   无视案例。

答案 2 :(得分:0)

搜索if (newBook.get(i).getTitle().toLowerCase().contains(search.toLowerCase())) 方法更为正确

{{1}}