我试图将Java数组列表中的所有项目都转换为小写。谁能告诉我我做错了什么?
for (int i = 0; i <= books.size() - 1; i++) {
books = books.toLowerCase();
if (books.get(i).toString().contains(s)) {
return true;
我的程序基本上是一家出售库存的商店。 库存的每个类别都是其自己的数组,例如:
books = new ArrayList<>();
我在构造函数中提出了尺寸等要求
book_1 = new Book(300, 8, 500, true);
它本身会打印出类似以下内容的内容: 一共300页,这些尺寸等的书
如果用户想在数组中搜索“书”项,我需要它返回true并告诉他们搜索的结果。我正在尝试将数组中的所有字符串都转换为小写字母,以免大写字母影响搜索。
答案 0 :(得分:2)
您似乎想 查看String
中是否包含Book
的{{1}}表示形式,忽略大小写。
List
不起作用,因为books = books.toLowerCase();
类没有ArrayList
方法;它是toLowerCase
类。您可以使用内置方法String
:
equalsIgnoreCase()
或Java 8 +:
for(int i =0; i < books.size(); i++) {
if(books.get(i).toString().equalsIgnoreCase(s)) {
return true;
}
}
return false;
或
return books.stream().map(Book::toString).anyMatch(s::equalsIgnoreCase);
答案 1 :(得分:0)
我想您犯了一个错误,books
是一个字符串列表。所以在这种情况下,你可以做这样的事情:
List<String> upperCaseBooks = books.stream().map(book -> book.toLowerCase()).collect(Collectors.toList());