Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重复整数n次_Java_For Loop_Iteration - Fatal编程技术网

Java 重复整数n次

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:

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+""));
    }