在 lambda 表达式中使用 equalsIgnoreCase()

问题描述 投票:0回答:1

我正在编写一个程序,显示列表中除以特定字母开头的单词之外的所有名称。我无法在 lambda 函数 .startsWith()

中使用 .equalIgnoreCase()

这是我的代码:

package java_sample;

import java.util.ArrayList;
import java.util.List;
import java.util.jar.Attributes.Name;

public class practice_lambda {
    public static void main(String[] args) {
        //String[] words = {"Param","rishav","sabari"};
        ArrayList<String> words = new ArrayList<String>();
        words.add("Param");
        words.add("Rishav");
        words.add("Sabar");
        
        
        //String name = "Paramesh";
        //Boolean x = name.startsWith("s");
        words.removeIf(name -> name.startsWith(name.equalsIgnoreCase("s")));
        System.out.println(words);  
        
    }
    
}

谁能告诉我如何在 lambda 函数中使用 equalIgnoresCase() ?

java lambda
1个回答
0
投票

一般来说,您不能仅使用

equalsIgnoreCase
来使其他字符串函数忽略大小写。 必须有一个
startsWithIgnoreCase
函数,但没有。

最简单的解决方案是 name -> name.startsWith("S") || name.startsWith("s"),但忽略大小写的最接近的替代方案可能是

name -> name.toLowerCase().startsWith("s")
    

© www.soinside.com 2019 - 2024. All rights reserved.