java - 过滤大字符串

标签 java java-stream

我有一个字符串数组,任务是找出数组中最长的字符串以及该字符串的位置。我想知道是否可以将数组转换为列表,并且通过使用流我可以解决同样的问题。任何帮助将不胜感激

我已经使用传统方式解决了这个问题,使用循环和一些 if 条件

String names[]={"John","Malisa","Stack Overflow"};

String b=names[i];
int max=b.length();

for(int i=1;i<names.length;i++) {
    if(max<names[i].length) {
        max=names[i].length;
        b=names[i];
    }
}

最佳答案

您不需要 filter 方法来查找数组中最长的字符串。使用max带比较器:

String max = Arrays.stream(names)
        .max(Comparator.comparingInt(String::length))
        .orElse("");

要查找该元素的索引,请使用:

int index = Arrays.asList(names).indexOf(max);

关于java - 过滤大字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55452773/

相关文章:

java - 使用 A* 查找最短路径

java - 使用 Stream lambda 将 CSV 字符串值转换为 Hashmap

java - 无法从 Android 应用程序中删除解析对象

java - JSP - 错误java.lang.String没有属性

java - 如何在 Java 中创建两个元素之间的关系?

java - 有序流的减少是否按顺序减少?

Java 8 Stream 丢失类型信息

java - 如何使用 Java 8 流过滤列表并从值数组开始

java - 创建类的数组,将数组中的各个值作为参数传递

java - 使用 try catch 和 while 只接受正整数