在Python中,我可以这样做:print(“a”* 2);
输出= aa
Java中有没有办法在没有循环的情况下做同样的事情?
答案 0 :(得分:3)
试试这个:
String buildString(char c, int n) {
char[] arr = new char[n];
Arrays.fill(arr, c);
return new String(arr);
}
Arrays.fill()
是standard API method,它将给定值分配给给定数组的每个元素。我觉得从技术上来说,为了达到这个目的,它会在内部循环,但从你的程序的角度来看,你已经避免了循环。
答案 1 :(得分:3)
虽然Java没有这样做的内置方法,但您可以使用StringBuilder
通过几行代码轻松完成此任务。
public static void main(String[] args) throws Exception {
System.out.println(stringMultiply("a", 2));
}
public static String stringMultiply(String s, int n){
StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++){
sb.append(s);
}
return sb.toString();
}
上面的函数stringMultiply
基本上是一样的。它将循环n
次(要乘以的数字),并将String
s
附加到每个循环的StringBuilder
。我的假设是python
对此使用相同的逻辑,它只是一个内置的功能,所以你的时间不应该与编写自己的function
不同。
答案 2 :(得分:-1)
不,你只能在循环中做到这一点