搜索数组列表不区分大小写

时间:2018-10-19 06:01:45

标签: java arrays arraylist

public void setSpeciality(String spec) {
    if(specialities.stream().anyMatch(s-> s.equalsIgnoreCase(spec))) {
        speciality =spec;
    }
    else
    speciality = "General Practitioner";
}

我需要搜索一个名为specialities(不区分大小写)的数组列表^看到我的答案尝试^,但无法弄清楚答案中有什么错误。

3 个答案:

答案 0 :(得分:4)

anyMatch仅返回truefalse,指示流中是否至少有1个满足谓词的元素。

您应该使用filterfindFirst,它们返回与谓词匹配的第一个元素:

speciality = specialities.stream()
                 .filter(spec::equalsIgnoreCase)
                 .findFirst()
                 .orElse("General Practitioner");

答案 1 :(得分:0)

只需包含word_list = splitter.split(line) 并将第一个字符转换为大写

speciality =spec.toLowerCase();

答案 2 :(得分:-1)

您正在压倒专业,因此每次您都会获得相同的结果。

如下所示更改代码

    public void setSpeciality(String spec) {
       if(specialities.stream().anyMatch(s-> s.equalsIgnoreCase(spec))) {
            speciality =spec;
       }else{
           speciality = "General Practitioner";
       }
     }