如何改写Java方法实现字符串按指定次数用` -*- `分隔同行打印
错误原因
- 判断逻辑不符合需求:原代码中
if (num%2 != 0)是判断传入的打印总次数是否为奇数,和“每两个字符串之间加分隔符”的要求没有关联 - 分隔符内容错误:要求的分隔符前后各有1个空格,应为
-*-,你写的-*-缺少了两端的空格 - 输出顺序错误:你先打印分隔符再打印字符串,会导致最终输出的开头多出来一个多余的分隔符
修正后的代码
package myloops; public class Quiz { public static void myMethod(String name, int num) { // 边界处理,传入次数小于1直接退出,避免无效执行 if (num < 1) { return; } // 第一次直接打印字符串,不需要前导分隔符 System.out.print(name); // 从第二次开始,每次先打印分隔符再打印字符串 for (int loop = 2; loop <= num; loop++) { System.out.print(" -*- "); System.out.print(name); } // 打印完成后换行,避免和后续控制台输出挤在同一行 System.out.println(); } public static void main(String[] args) { myMethod("Matthew", 3); } }
逻辑说明
要实现“两个内容之间加分隔符”的效果,核心是避免在开头或结尾多余打印分隔符:
- 先打印第一个字符串,不需要前导分隔符
- 从第二个字符串开始,每输出一个字符串前先输出分隔符,保证分隔符只会出现在两个字符串中间
内容的提问来源于stack exchange,提问作者Apep
相关产品推荐
相关产品推荐

