我创建了一个在数组列表中搜索字符串的方法,但问题是,如果我搜索一本书,它必须是它输入数组列表的确切方式。
例如,如果我输入"哈利波特"作为一本书的标题并搜索它,我必须加入"哈利波特",我不能把"哈利波特"或者" 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
答案 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}}