对于一个项目,我正在生成过程日志,该日志显示当前已完成的百分比,但是问题是,它可能会为每个百分比显示相同的百分比。我想要只打印每个百分比值一次的东西。
public class Progress {
public static void progressPercentage(int done, int total) {
System.out.println();
String iconLeftBoundary = "[";
String iconDone = "*";
String iconRemain = " ";
String iconRightBoundary = "]";
if (done > total) {
throw new IllegalArgumentException();
}
int donePercents = ((100 * done) / total) +1;
StringBuilder bar = new StringBuilder(iconLeftBoundary);
for (int i = 0; i < 100; i++) {
if (i < donePercents)
bar.append( iconDone );
else
bar.append( iconRemain );
}
bar.append(iconRightBoundary);
System.out.print("\r" + bar + " " + donePercents + "%");
if (done == total) {
System.out.println("\n");
}
}
}
这里方法接受参数,一个完成,第二个总计。我正在从这两个参数计算百分比。
Output I am getting:
[*] 1%
[*] 1%
[*] 1%
[*] 1%
[*] 1%
[**] 2%
[**] 2%
[**] 2%
[**] 2%
[**] 2%
Expecting:
[*] 1%
[**] 2%
[***] 3%
[****] 4%
[*****] 5%
答案 0 :(得分:0)
您可以在该方法的开头添加一个条件,以检查完成的点是否是百分比的精确点之一。
if(done % (total / 100) != 0){
return;
}