Java,重复x次字符串

时间:2018-11-15 19:46:18

标签: java loops if-statement char

我想创建一个程序来接收用户的输入,例如:'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("*");

        }

    }

}

2 个答案:

答案 0 :(得分:0)

直接为您提供答案似乎很愚蠢,所以我可以给您一种解决方法的想法。

问题陈述

因此,您定义的语法为<count>s<count>s...。这意味着对于每个s,应该有一个<count>

步骤1 -获取计数。

您以s1s2s3s4之类的字符串开头。您split that string上的字母s会给您:

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

第2步-总计这些计数。

您想找出总共有多少颗星,这是所有计数的总和。您需要将这些数字加在一起。

1 + 2 + 3 + 4 = 10

第3步-打印星星。

我猜你可以看到从这里去的地方。

答案 1 :(得分:0)

使用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;
        }
    }