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

筛选大字符串

筛选大字符串

天涯尽头无女友 2022-09-14 10:29:45
我有一个String数组,任务是找出数组中最长的字符串以及该字符串的位置。我想知道我是否可以将数组转换为列表,通过使用流,我可以解决同样的问题。任何帮助将不胜感激我已经使用传统方法解决了这个问题,使用循环和一些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];    }}
查看完整描述

4 回答

?
ITMISS

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

不需要方法来查找数组中最长的字符串。将最大值与比较器配合使用:filter

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

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

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


查看完整回答
反对 回复 2022-09-14
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

您可以使用和比较长度:Arrays.stream


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

    Optional<String> max = Arrays.stream(names)

            .max(Comparator.comparingInt(String::length));

    System.out.println(max.orElse("none"));

断续器我没有正确理解你的问题。您可以使用此代码获取最大元素的索引:


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


    int index = IntStream.range(0, names.length)

            .reduce((i, j) -> names[i].length() > names[j].length() ? i : j)

            .getAsInt();


    System.out.println(index);


查看完整回答
反对 回复 2022-09-14
?
斯蒂芬大帝

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

只需使用 :-

Arrays.stream(names)
       .sorted(Comparator.comparing(String::length,Comparator.reverseOrder()))
       .findFirst()
       .get()


查看完整回答
反对 回复 2022-09-14
?
慕沐林林

TA贡献2016条经验 获得超9个赞

以下是同时获取最长字符串及其索引的另一种方法:


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

Optional<Map.Entry<String, Integer>> result = IntStream.range(0, names.length).boxed()

        .collect(Collectors.toMap(i -> names[i], Function.identity()))

        .entrySet().stream()

        .max(Comparator.comparing(e -> e.getKey().length()));


result.ifPresent(e -> System.out.println("Longest String: '" + e.getKey() + "' at index " + e.getValue()));

这将创建一个包含字符串及其索引的映射。之后,它将返回具有最长字符串的条目。


数组的结果是:names


Longest String: 'Stack Overflow' at index 2


查看完整回答
反对 回复 2022-09-14
  • 4 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号