Java 重复整数n次
我想把一个整数变成一个金字塔。 即数字3:Java 重复整数n次,java,for-loop,iteration,Java,For Loop,Iteration,我想把一个整数变成一个金字塔。 即数字3: 3 33 333 因此,根据我找到的答案,我做出了以下结论: int n = 8; String n2 = Integer.toString(n); for (int i=0; i<n; i++) { System.out.println(StringUtils.repeat(n2, i)); } int n=8; 字符串n2=整数。toString(n); 对于(inti=0;i如下所示 public class Test{
3
33
333
因此,根据我找到的答案,我做出了以下结论:
int n = 8;
String n2 = Integer.toString(n);
for (int i=0; i<n; i++) {
System.out.println(StringUtils.repeat(n2, i));
}
int n=8;
字符串n2=整数。toString(n);
对于(inti=0;i如下所示
public class Test{
public static String repeat(String str, int times) {
return new String(new char[times]).replace("\0", str);
}
public static void main(String[] args) {
for (int i = 1; i < 5; i++) {
System.out.println(repeat("3", i));
}
}
}
好的,您可以使用Java-8
streams在没有显式循环的情况下执行此操作:
IntStream.range(1,n).forEach(i -> System.out.println(StringUtils.repeat(n2, i));
甚至没有apache commons
:
IntStream.range(0,n).forEach(i -> System.out.println(String.join("", Collections.nCopies(i+1, n2))));
但在任何情况下,所有这些方法在内部都使用循环。您可以尝试使用循环
您仍然需要循环,但从性能角度来看,它可能会稍微好一点
int n = 8;
String n2 = Integer.toString(n);
StringBuilder builder = new StringBuilder(n);
for(int i = 0; i < n; i++) {
builder.append(n2);
System.out.println(builder.toString());
}
只有当整数为0时,这才有效。要保留整数,您可以每次存储最后一个值,然后添加下一部分: i=0-->得到3 i=1-->得到33(i0+30) i=2-->得到333(i1+300)
int lastValue=0;
对于(int i=0;i
我的意思是把我的int转换成字符串不是很理想吗?不是吗
有没有一种直接处理整数的方法
如果不想将int转换为string
这可能对你有帮助
int n = 3;
for (int i=1; i<=n; i++) {
System.out.println(new String(new char[i]).replace("\0", n+""));
}
int n=3;
对于(int i=1;iit不起作用-你是什么意思?为什么它是次优的?你不能构建像这样没有循环的动态递归结构。我的意思是,将我的int转换为字符串不是次优的吗?没有直接的方法来处理整数吗?出于显示目的,int被转换为字符串。你应该避免使用word当你不知道自己是初学者时,这就像是“次优”。很可能你并不真正了解什么是最佳的,什么不是。是的;我希望找到类似System.out.println(x,y)的东西其中x不是要显示的整数,y是要显示它的次数。@Andremoniy必须至少有一个循环是的,我的问题不清楚。我对一个循环很满意。但是我想重复我的整数I次。但是我不知道如何在不将int转换成字符串的情况下执行该操作before@ankur-singhal实际上不是你也用过的`对于每个,我希望这与for loop`@ankur singhal我说过:“没有显式的”。很明显,String.repeat
在内部使用循环also@saka1029根据问题n2
始终是n
的字符串表示:n2=Integer.toString(n)
@saka129但是你说得对,我应该把间隔时间增加到[0,n]
,谢谢这是最好的答案。我以前找到过这个方法,但我想可能有其他方法,但似乎没有。无论如何,谢谢:-)很高兴看到这对你有帮助:)
int n = 8;
String n2 = Integer.toString(n);
StringBuilder builder = new StringBuilder(n);
for(int i = 0; i < n; i++) {
builder.append(n2);
System.out.println(builder.toString());
}
char[] str = new char[n];
Arrays.fill(str, (char)(number + '0'));
new String(str);
int lastValue = 0;
for (int i=0; i<=n; i++) {
int currentValue = lastValue + (n * Math.pow(10, i));
System.out.println(currentValue);
lastValue = currentValue ;
}
int n = 3;
for (int i=1; i<=n; i++) {
System.out.println(new String(new char[i]).replace("\0", n+""));
}