Java:移动百分号,或者在百分号后补空格

Java: Moving percentage sign, or padding with spaces after the percentage sign

我的输出需要匹配以下内容(我主要关心百分比值):

100% | 03 games
75%  | 04 games
14%  | 07 games

我很难让他们排成一排。第一个整数需要左对齐。我尝试使用 printf("%-3d%%", percentage) - 它们排列得很好,但第一个整数和百分号之间有一个间隙(当它不等于 100 时):

100% | 03 games
75 % | 04 games
14 % | 07 games

我还尝试了 DecimalFormat 说明符 "##0%",但问题是具有不同位数的百分比值不对齐 - [= 之间始终只有一个 space 16=]和|,有时需要两个或三个。

100% | 03 games
75% | 04 games
14% | 07 games 

我该如何解决这个问题?有没有办法在百分号后用 spaces 填充?提前致谢。

使用String.format两次:

String inner = format("%d%%", yourNumber); // creates "42%"
String outer = format("%-4s", inner); // creates "42% "