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

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

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

蝴蝶不菲 2021-07-08 14:00:34
我是 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有人可以告诉我我需要修复什么吗?我不希望它打印“它”和“是”和“电话”应该只打印一次。
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您需要将最大的单词保留在变量中并将其打印在循环之外。您还需要;从if(i > largest)


public static void main(String []args) {

    int largest = 0; 

    String largestWord = "";

    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;

                largestWord = retval;

            }

        }

    }

    System.out.println(largestWord);

}

作为旁注,变量应以小写开头Banana->banana


查看完整回答
反对 回复 2021-07-14
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您不需要嵌套循环。

只需使用第一个循环(遍历所有单词)并存储迄今为止在每次迭代中找到的最长单词。

对于 Java 的更高级用法,请尝试使用 Stream API:

    Optional<String> longestWord= Arrays.stream("It is my phone".split(" "))
            .max(Comparator.comparing(String::length));


查看完整回答
反对 回复 2021-07-14
  • 3 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信