如何找到给定字符串中最长的单词?

新手上路,请多包涵

在给定的字符串中,我想 找到最长的单词 然后在控制台中打印出来。

我得到的输出是第二长的单词,即 "Today" ,但我应该得到 "Happiest"

我可以知道我做错了什么吗?有没有更好/不同的方法来查找字符串中最长的单词?

 public class DemoString {
    public static void main(String[] args) {
        String s = "Today is the happiest day of my life";
        String[] word = s.split(" ");
        String longword = " ";
        for (int i = 0; i < word.length; i++)
            for (int j = 1 + i; j < word.length; j++)
                if (word[i].length() >= word[j].length())
                    longword = word[i];

        System.out.println(longword + " is the longest word with " + longword.length() + " characters.");
        System.out.println(rts.length());
    }
}

原文由 Suraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 668
1 个回答

这是您可以与 Java 8 流 API 一起使用的“单行代码”:

 import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        String s = "Today is the happiest day of my life";
        String longest = Arrays.stream(s.split(" "))
                .max(Comparator.comparingInt(String::length))
                .orElse(null);
        System.out.println(longest);
    }
}

输出:

 happiest

在这里 试试看。

原文由 Sash Sinha 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题