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(); } }
代码解释
- 外层循环:
currentLength从单词的初始长度开始,每次循环减1,直到等于1,这样就对应了从最长行到最短行的输出顺序。 - 内层循环:只遍历当前行需要的前
currentLength个字符,每输出一个字符后,判断是否是当前行的最后一个——如果不是,就输出连字符,完美避免了末尾多余的符号。 - 换行处理:每行字符输出完成后,用
System.out.println()换行,保证每行内容单独显示。
测试示例
当输入Baby时,程序会输出:
B-a-b-y
B-a-b
B-a
B
完全符合你想要的效果哦!
内容的提问来源于stack exchange,提问作者Blue Holliday
相关产品推荐
相关产品推荐

