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

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;

    }

我已经设法运行一个代码,告诉我如果字符串数组中有重复的一系列单词,它是真还是假,但是,如果没有一个循环构造也能找到大写和小写的重复,我怎么能做到这一点?


牧羊人nacy
浏览 164回答 2
2回答

守着星空守着你

使用Map<String, Integer>将字符串列表/数组中的单词作为键(小写单词)应该可以解决您的问题。如果地图中已经存在新单词(使用 来检查新单词toLowercase()),那么您可以返回 true。您必须显式或隐式(Java8 隐藏循环或其他集合的构造函数)至少遍历字符串列表或数组一次(如果不是for-loop则for-each循环)以查找是否重复任何单词。

莫回无

简而言之,没有任何循环就无法做到这一点。但是,如果您正在寻找隐藏循环,则可以使用:public static boolean out(String[] input) {&nbsp; &nbsp; return input.length != new HashSet<String>(Arrays.asList(input)).size();}如果您需要忽略大小写,则:public static boolean out(String[] input) {&nbsp; &nbsp; return input.length != Arrays.stream(input).map(String::toLowerCase).collect(Collectors.toSet()).size();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java