Этот вопрос уже имеет ответ здесь:
У меня есть что-то как следующее:
int i = 3;
String someNum = "123";
Я хотел бы добавить i
"0" s к someNum
строка. Это имеет некоторый способ, которым я могу умножить строку, чтобы повторить, что это как Python делает?
Таким образом, я мог просто пойти:
someNum = sumNum + ("0" * 3);
или что-то подобное?
Где в этом случае мой конечный результат был бы:
"123000".
Нет, не можете. Однако вы можете использовать эту функцию для повторения символа.
public String repeat(char c, int times){
StringBuffer b = new StringBuffer();
for(int i=0;i < times;i++){
b.append(c);
}
return b.toString();
}
Отказ от ответственности: я напечатал это здесь. Могут быть ошибки.
Я не верю, что Java изначально предоставляет эту функцию, хотя было бы неплохо. Я иногда пишу код Perl, и оператор x
в Perl очень удобен для повторения строк!
Однако StringUtils
в commons-lang
предоставляет эту функцию. Метод называется repeat ()
. Единственный другой вариант - создать его вручную с помощью цикла.
Нет. В Java нет этой функции. Вам нужно будет создать свою строку, используя StringBuilder и какой-то цикл.
На ум приходят два способа:
int i = 3;
String someNum = "123";
// Way 1:
char[] zeroes1 = new char[i];
Arrays.fill(zeroes1, '0');
String newNum1 = someNum + new String(zeroes1);
System.out.println(newNum1); // 123000
// Way 2:
String zeroes2 = String.format("%0" + i + "d", 0);
String newNum2 = someNum + zeroes2;
System.out.println(newNum2); // 123000
Путь 2 можно сократить до:
someNum += String.format("%0" + i + "d", 0);
System.out.println(someNum); // 123000
Подробнее о String # format ()
можно найти в его документе API и тот из java.util.Formatter
.
Нет, но вы можете в Scala! (А затем скомпилировать его и запустить с помощью любой реализации Java!!!!)
Теперь, если вы хотите сделать это простым способом на java, используйте пакет Apache commons-lang. Если вы используете maven, добавьте эту зависимость в pom.xml:
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
А затем используйте StringUtils.repeat следующим образом:
import org.apache.commons.lang.StringUtils
...
someNum = sumNum + StringUtils.repeat("0", 3);
С Гуава :
Joiner.on("").join(Collections.nCopies(i, someNum));
В Java нет быстрого способа сделать это, как в примере, который вы привели в Python.
Вам придется сделать так:
for (;i > 0; i--) {
somenum = somenum + "0";
}
с Доллар :
String s = "123" + $("0").repeat(3); // 123000