replaceAll
излишне для этого. Нет необходимости запускать весь механизм регулярных выражений (который будет перекомпилировать регулярное выражение при каждом выполнении) для чего-то, чего вы можете достичь с помощью простого арифметического c и StringBuilder
.
, так как вы генерируя число, вы просто генерируете случайное количество звезд. Единственная вещь в немаскированной строке, которая не является ди git, это отрицательный знак.
StringBuilder sb = new StringBuilder();
if (rand < 0) sb.append('-');
do {
sb.append('*');
rand /= 10;
} while (rand != 0); // Use do/while in order to generate '*' when rand is zero initially.
String randStr = sb.toString();
Но в зависимости от диапазона чисел, которые вы можете сгенерировать, может быть проще иметь / еще с небольшой горсткой жестко закодированных строк:
if (rand >= 0 && rand < 10) randStr = "*";
else if (rand >= 10 && rand < 100) randStr = "**";
else if (rand >= 100 && rand < 1000) randStr = "***";
else throw new AssertionError();