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

如何修改Java while循环实现#终止输入,修正字母计数输出格式问题

修改后可直接运行的完整代码

import java.util.Scanner;

public class MyClass {
    public static void main(String args[]) {
        Scanner sc =  new Scanner(System.in);
        while (true) {
            // 每一行单独计数,数组放在循环内实现每次重置
            int a[] = new int[26];
            String str = sc.nextLine();
            // 识别到#终止输入
            if (str.equals("#")) {
                break;
            }
            // 统计当前行字母数量
            for (char ch : str.toCharArray()) {
                if (ch >= 'A' && ch <= 'Z') {
                    a[ch - 'A']++;
                } else if (ch >= 'a' && ch <= 'z') {
                    a[ch - 'a']++;
                }
            }
            // 输出当前行统计结果,处理空格分隔
            boolean isFirst = true;
            for (int i = 0; i < 26; i++) {
                if (a[i] > 0) {
                    if (!isFirst) {
                        System.out.print(" ");
                    }
                    System.out.print((char)(i + 'a') + "(" + a[i] + ")");
                    isFirst = false;
                }
            }
            // 每行输出结束换行
            System.out.println();
        }
        sc.close();
    }
}

核心改动点

  • 新增while死循环逐行读取输入,判断读取内容为#时直接终止循环
  • 将计数数组a的定义移动到循环内部,保证每行计数独立,不会和之前输入的行累计
  • 输出新增首项标记,非第一个计数项前加空格,每行统计完成后换行,符合输出格式要求

内容的提问来源于stack exchange,提问作者iman farhana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:54:03