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

Java初学者:如何在循环中实现带连字符的逐行缩短字符串输出

解决Java字符串逐行缩短并带连字符分隔的问题

嘿,我来帮你搞定这个需求!你现在的代码已经摸到了连字符分隔的门,但还没实现逐行缩短的核心逻辑,咱们来调整一下:

思路梳理

要实现目标效果,需要两层循环配合:

  • 外层循环:控制输出的行数,总共要输出和单词长度一样多的行,每行的字符数从完整长度逐步减到1
  • 内层循环:处理每一行的字符输出,给非末尾的字符加上连字符,避免最后一个字符后面多出来的符号

完整代码实现

import java.util.Scanner;

public class HyphenatedWordPrinter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入需要处理的单词:");
        String wordEntered = scanner.nextLine();
        
        // 外层循环控制每行的字符长度,从完整长度递减到1
        for (int currentLength = wordEntered.length(); currentLength >= 1; currentLength--) {
            // 内层循环遍历当前行需要输出的字符
            for (int i = 0; i < currentLength; i++) {
                // 输出当前字符
                System.out.print(wordEntered.charAt(i));
                // 如果不是当前行的最后一个字符,添加连字符
                if (i != currentLength - 1) {
                    System.out.print("-");
                }
            }
            // 每行结束后换行
            System.out.println();
        }
        scanner.close();
    }
}

代码解释

  1. 外层循环:currentLength从单词的初始长度开始,每次循环减1,直到等于1,这样就对应了从最长行到最短行的输出顺序。
  2. 内层循环:只遍历当前行需要的前currentLength个字符,每输出一个字符后,判断是否是当前行的最后一个——如果不是,就输出连字符,完美避免了末尾多余的符号。
  3. 换行处理:每行字符输出完成后,用System.out.println()换行,保证每行内容单独显示。

测试示例

当输入Baby时,程序会输出:

B-a-b-y
B-a-b
B-a
B

完全符合你想要的效果哦!

内容的提问来源于stack exchange,提问作者Blue Holliday

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:57:21