繁体   English   中英

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

[英]All elements in array to lowercase - toLowerCase() method

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

似乎想查看List是否包含BookString表示,忽略大小写。

books = books.toLowerCase();

不起作用,因为ArrayList类没有toLowerCase方法; 它是具有它的String类。 您可以使用内置方法equalsIgnoreCase()

for(int i =0; i < books.size(); i++) {
    if(books.get(i).toString().equalsIgnoreCase(s)) {
       return true;
    }
}
return false;

或 Java 8+:

return books.stream().map(Book::toString).anyMatch(s::equalsIgnoreCase);

或者

return books.stream().anyMatch(book -> book.toString().equalsIgnoreCase(s));

我想你犯了一个错误, books是一个字符串列表。 因此,在这种情况下,您可以执行以下操作:

List<String> upperCaseBooks = books.stream().map(book -> book.toLowerCase()).collect(Collectors.toList());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM