亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

篩選大字符串

篩選大字符串

天涯盡頭無女友 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 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號