数组中的所有元素均小写-toLowerCase()方法

时间:2019-02-01 01:18:40

标签: java

我试图将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并告诉他们搜索的结果。我正在尝试将数组中的所有字符串都转换为小写字母,以免大写字母影响搜索。

2 个答案:

答案 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());