Java编写学校作业进度条时=符号出现在括号外的问题如何解决
问题原因
问题出在repeatString方法的实现逻辑:
- 方法内部直接通过
System.out.print(str)打印重复字符,这些内容会直接输出到控制台,出现在进度条括号的前方 - 方法最终仅返回单次传入的字符串参数,也就是说调用
repeatString(amount, "=")实际只会返回1个=,最终拼接到[]内部的只有1个进度符,与预期的重复amount次的效果不符。
修复方案
修改repeatString方法,将重复的字符拼接为完整字符串后返回,移除方法内部的直接打印逻辑:
public static String repeatString(int number, String str) { StringBuilder result = new StringBuilder(); for (int i = 0; i < number; i++) { result.append(str); } return result.toString(); }
修改后调用repeatString会直接返回符合长度要求的重复字符串,formatBar拼接后所有=都会显示在括号内部,符合需求。
内容的提问来源于stack exchange,提问作者B.Simsek
相关产品推荐
相关产品推荐

