【问题标题】:I want to have a character print int amount of times我想要一个字符打印 int 次数
【发布时间】:2019-11-02 16:49:52
【问题描述】:

我想打印一个字符 z,例如与指定整数匹配的次数。 所以如果 int Z = 9 我希望 "z" 打印 9 次

String newString = "";


    if (0<X)
    {
        for (int i = 0; i < X ;i++ ){
            newString+=("x");
            }
        }
    if (0<Y)
    {
        for (int i = 0; i < Y ;i++ ){
            newString+=("y");
            }
        }
    if (0<Z)
    {
        for (int i = 0; i < Z ;i++ ){
            newString+=("z");
            }

    }
return newString;
}

}

【问题讨论】:

标签: java loops for-loop while-loop nested-loops


【解决方案1】:

只需删除 while 循环。如果你有它,它将永远执行你的代码,导致StackoverflowError

String newString = "";
int Z = 9;
if (0 < Z) {
    for (int i = 0; i < Z; i++) {
        newString += ("z");
    }
    System.out.println(newString);
}

【讨论】:

  • 嗯,很确定单独的循环不会导致堆栈溢出。 Stackoverflows 发生在深度嵌套的函数调用中——通常在使用递归时。
  • 谢谢,我用三个整数 XYZ 一起做这个,但是不能连续三个相同的字符。所以说 X=3 Y=8 和 Z= 1,输出可能是 xxzyyxyy - 3 个 Xs、1 个 Z 并且只有 4 个 Y,因为不再意味着连续有 3 个。
  • String newString = ""; if (0
  • 我已经用我拥有的东西编辑了原始代码,但我得到的输出只是 xxxyyyyyyyyz,感谢任何帮助
【解决方案2】:
String newString = "";
int i = 0;
int z = 7; // any positive int

while (i < z)
{
    newString += "z";
}
System.out.println(newString);

如果你出于个人喜好的原因想保留while循环的方式,你可以按照上面的逻辑来做。这取决于 z 的正确值,如果小于 i 将导致永远不会执行 wile 循环。但是,如果您想在一行中执行此操作,String 有一个 .repeat 方法,可以按如下方式调用: `System.out.println("z".repeat(7));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多