Используйте String.format
отступы с пробелами и замените их желаемым символом.
String toPad = "Apple";
String padded = String.format("%8s", toPad).replace(' ', '0');
System.out.println(padded);
Печать 000Apple
.
Обновите более производительную версию (поскольку она не полагается на String.format
нее), в которой нет проблем с пробелами (спасибо Рафаэлю Борха за подсказку).
int width = 10;
char fill = '0';
String toPad = "New York";
String padded = new String(new char[width - toPad.length()]).replace('\0', fill) + toPad;
System.out.println(padded);
Печать 00New York
.
Но необходимо добавить проверку, чтобы предотвратить попытку создания массива символов с отрицательной длиной.