You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java入门项目求助:用字符串、循环和if语句实现城市统计程序

解决Cities程序的实现问题

你的现有代码存在几个关键问题:每次输入城市时会覆盖之前的citylist变量,没有保存输入的城市,也没有统计数量和追踪字符数最多的城市。下面是修改后的完整代码,完全使用do-while循环、字符串和if语句实现需求:

package cities;

import java.util.Scanner;

public class Cities {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String currentCity;
        int cityCount = 0;
        String longestCity = "";

        do {
            System.out.print("Name of city: ");
            currentCity = input.next();

            // 仅处理非"stop"的输入
            if (!currentCity.equals("stop")) {
                cityCount++; // 计数加1
                // 比较当前城市长度与最长城市长度,更新最长城市
                if (currentCity.length() > longestCity.length()) {
                    longestCity = currentCity;
                }
            }
        } while (!currentCity.equals("stop"));

        // 输出结果
        System.out.println("已输入的城市数量: " + cityCount);
        if (cityCount > 0) {
            System.out.println("字符数最多的城市名称: " + longestCity);
        } else {
            System.out.println("没有输入任何城市");
        }
    }
}

代码说明:

  • 变量初始化:
    • cityCount:用于统计输入的城市数量,初始值为0。
    • longestCity:用于保存字符数最多的城市名称,初始值为空字符串。
  • 循环逻辑:
    • 在do-while循环内,先获取用户输入的城市名。
    • 通过if判断输入不是"stop"时,才进行计数和最长城市的判断。
    • 每次输入有效城市时,比较其长度与longestCity的长度,若更长则更新longestCity。
  • 结果输出:
    • 循环结束后,输出城市总数。
    • 加入判断如果没有输入任何城市(cityCount为0),给出提示避免空输出。

这样修改后,程序就能满足持续输入城市直到"stop",并输出统计结果的需求,完全符合你要求的语法限制。

内容的提问来源于stack exchange,提问作者Tristan Day

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:57:50