Ron*_*fin 50 java string initialization
我想创建一个具有以下签名的函数:
public String createString(int length, char ch)
Run Code Online (Sandbox Code Playgroud)
它应该返回一串指定长度的重复字符.
例如,如果length为5且ch为'p',则返回值应为
public String createString(int length, char ch)
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,没有循环,直到它是所需的长度?
没有任何外部定义的常量?
Joe*_*tov 90
char[] chars = new char[len];
Arrays.fill(chars, ch);
String s = new String(chars);
Run Code Online (Sandbox Code Playgroud)
这是一个优雅的纯Java单行解决方案:
Java 1.5+:
String str = new String(new char[5]).replace("\0", "p"); // "ppppp"
Run Code Online (Sandbox Code Playgroud)
Java 11+:
String str = "p".repeat(5); // "ppppp"
Run Code Online (Sandbox Code Playgroud)
对于记录,使用Java8,您可以使用流来执行此操作:
String p10times = IntStream.range(0, 10)
.mapToObj(x -> "p")
.collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
但这似乎有些矫枉过正.