【问题标题】:Java, repeat x times stringJava,重复x次字符串
【发布时间】:2019-04-18 23:52:32
【问题描述】:

我想创建一个接受用户输入的程序,例如:'s' 表示“*”,我想打印 x 次。例如,如果用户输入 4s ,结果应该是 **** 或类似 2s4s: ****** 的东西。我尝试使用 charAt 函数但无法处理数字...

public static void main(String[] args) {
    // TODO Auto-generated method stub

    Scanner input = new Scanner(System.in);

    System.out.println("Welcome to image printer program.");

    System.out.print("Please enter your sequence:");

    String sequence = input.nextLine();

    char b = ' ';

    int s = 's';

    char n = '\n';

    for (int a = 0; a <= sequence.length() - 1; a++) {

        char c = sequence.charAt(a);

        if (c == 's') {

            System.out.print("*");

        }

    }

}

【问题讨论】:

  • 你能粘贴你的代码吗?我们可以帮助您改进它,而不是尝试新的解决方案。
  • 我已编辑,请您帮忙

标签: java loops if-statement char


【解决方案1】:

使用 Character.isDigit 和 Character.isLetter 方法:

    int count = 0;
    boolean isLetter = false;
    String symbol = "*";
    String s = input.next();

    for (int i = 0; i < s.length(); i++) {
        char character = s.charAt(i);
        if (Character.isDigit(character)) {
            count = Character.getNumericValue(character);
        } else if (Character.isLetter(character)) {
            isLetter = true;
        }

        if (count != 0 && isLetter) {
            for (int j = 0; j < count; j++) {
                System.out.print(symbol);
            }
            count = 0;
            isLetter = false;
        }
    }

【讨论】:

    【解决方案2】:

    直接给你答案似乎很愚蠢,所以我可以给你一个方法的想法。

    问题陈述

    所以你定义的语法是&lt;count&gt;s&lt;count&gt;s...。这意味着对于每个s,都应该有一个&lt;count&gt;

    第 1 步 - 获取计数。

    您以 s1s2s3s4 之类的字符串开头。你 split that string 在信 s 上给你:

    ["1","2","3","4"]
    

    第 2 步 - 将这些计数相加。

    你想知道你总共有多少颗星星,这是所有计数的总和。您需要将这些数字相加。

    1 + 2 + 3 + 4 = 10
    

    第 3 步 - 打印星星。

    我猜你可以看到从这里到哪里去。

    【讨论】:

    • “直接给你答案似乎很愚蠢” 是的,你是对的。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多