为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用循环结构的情况下使用布尔值对重复的单词表示真或假

在不使用循环结构的情况下使用布尔值对重复的单词表示真或假

牧羊人nacy 2022-03-10 10:32:21
public class Main                                       {                                         public static void main(String[] args)                                          {                                                                                 String[] find2 = {"cool","NOT","NOT,"Cool"};                                            String[] nofind = {"Fly","poke","ok";                                               System.out.println(Test.out(find);                                          System.out.println(Test.out(nofind));                                                                             }                                     }+public class Test                                   {public static boolean Out(String[] input) {        for (int i = 0; i < input.length; i++) {            for (int j = 0; j < input.length; j++) {                if (input[i].equals(input[j]) && i != j) {                    return true;                }            }        }        return false;    }我已经设法运行一个代码,告诉我如果字符串数组中有重复的一系列单词,它是真还是假,但是,如果没有一个循环构造也能找到大写和小写的重复,我怎么能做到这一点?
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

使用Map<String, Integer>将字符串列表/数组中的单词作为键(小写单词)应该可以解决您的问题。如果地图中已经存在新单词(使用 来检查新单词toLowercase()),那么您可以返回 true。

您必须显式或隐式(Java8 隐藏循环或其他集合的构造函数)至少遍历字符串列表或数组一次(如果不是for-loopfor-each循环)以查找是否重复任何单词。


查看完整回答
反对 回复 2022-03-10
?
莫回无

TA贡献1865条经验 获得超7个赞

简而言之,没有任何循环就无法做到这一点。但是,如果您正在寻找隐藏循环,则可以使用:


public static boolean out(String[] input) {

    return input.length != new HashSet<String>(Arrays.asList(input)).size();

}

如果您需要忽略大小写,则:


public static boolean out(String[] input) {

    return input.length != Arrays.stream(input).map(String::toLowerCase).collect(Collectors.toSet()).size();

}


查看完整回答
反对 回复 2022-03-10
  • 2 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信