Java:String - 添加字符n次

use*_*686 33 java string

有没有一种简单的方法可以将字符或其他字符串n次添加到现有的String中?我无法找到任何东西String,Stringbuilder等等.

zel*_*ler 37

Apache commons-lang3StringUtils.repeat(String, int)这个,你可以这样做(为了简单起见,不是StringBuilder):

String original;
original = original + StringUtils.repeat("x", n);
Run Code Online (Sandbox Code Playgroud)

由于它是开源的,您可以阅读它的编写方式.如果我没记错的话,对于小ns有一个小的优化,但大多数时候它使用StringBuilder.


sud*_*ode 26

对于重复单个字符(不是字符串)的情况,您可以使用Arrays.fill:

  String original = "original ";
  char c = 'c';
  int number = 9;

  char[] repeat = new char[number];
  Arrays.fill(repeat, c);
  original += new String(repeat);
Run Code Online (Sandbox Code Playgroud)

  • 这可能是最有效的方式之一,仍然可以用三行来写。 (2认同)

小智 22

您可以使用Java 8流API执行此操作.以下代码"cccc"从以下位置创建字符串"c":

String s = "c";
int n = 4;
String sRepeated = IntStream.range(0, n).mapToObj(i -> s).collect(Collectors.joining(""));
Run Code Online (Sandbox Code Playgroud)


Xeo*_*eon 18

对于Java 8,您可以:

int n = 4;
String existing = "...";
String result = existing + String.join("", Collections.nCopies(n, "*"));
Run Code Online (Sandbox Code Playgroud)

输出:

...****
Run Code Online (Sandbox Code Playgroud)

在Java 8 String.join中添加了该方法.但Collections.nCopies即便在Java 5中.


oxy*_*_js 12

用这个

String input = "original";
String newStr = "new"; //new string to be added
int n = 10 // no of times we want to add
input = input + new String(new char[n]).replace("\0", newStr);
Run Code Online (Sandbox Code Playgroud)


Col*_*inD 10

你可以使用GuavaStrings.repeat方法:

String existingString = ...
existingString += Strings.repeat("foo", n);
Run Code Online (Sandbox Code Playgroud)


Jan*_*cak 5

for(int i = 0; i < n; i++) {
    existing_string += 'c';
}
Run Code Online (Sandbox Code Playgroud)

但您应该改用StringBuilder,并节省内存

int n = 3;
String existing_string = "string";
StringBuilder builder = new StringBuilder(existing_string);
for (int i = 0; i < n; i++) {
    builder.append(" append ");
}

System.out.println(builder.toString());
Run Code Online (Sandbox Code Playgroud)


Jim*_*lla 5

最好使用StringBuilder代替,String因为 String 是一个不可变的类,一旦创建就不能修改:在 String 中,每次连接都会使用修改后的字符串创建 String 类的新实例。