需要一点帮助!我需要知道我做错了什么

我是 Java 的初学者,我正在创建这个程序来输出字符串中最大的单词。这是我的程序;


public static void main(String[] args) {

    int largest=0; 


    String Banana= new String("It is my phone");

    System.out.println("Results are;");

    for (String retval: Banana.split(" "))

    {

        for(int i=0; i<retval.length(); i++)

        {

            if(i>largest);

            {

                largest=i;

                System.out.println(retval);

            }

        }

    }

}

当我调试我的程序时,它给了我输出


It It is is my my Phone Phone Phone Phone Phone

有人可以告诉我我需要修复什么吗?我不希望它打印“它”和“是”和“电话”应该只打印一次。


蝴蝶不菲
浏览 153回答 3
3回答

阿波罗的战车

您需要将最大的单词保留在变量中并将其打印在循环之外。您还需要;从if(i > largest)public static void main(String []args) {&nbsp; &nbsp; int largest = 0;&nbsp;&nbsp; &nbsp; String largestWord = "";&nbsp; &nbsp; String banana = new String("It is my phone");&nbsp; &nbsp; System.out.println("Results are;");&nbsp; &nbsp; for (String retval: banana.split(" ")) {&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 0 ; i < retval.length() ; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(i > largest) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; largest = i;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; largestWord = retval;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println(largestWord);}作为旁注,变量应以小写开头Banana->banana

吃鸡游戏

您不需要嵌套循环。只需使用第一个循环(遍历所有单词)并存储迄今为止在每次迭代中找到的最长单词。对于 Java 的更高级用法,请尝试使用 Stream API:&nbsp;&nbsp;&nbsp;&nbsp;Optional<String>&nbsp;longestWord=&nbsp;Arrays.stream("It&nbsp;is&nbsp;my&nbsp;phone".split("&nbsp;")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.max(Comparator.comparing(String::length));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java