重复单个char到char数组。设置数组的长度以匹配字符串所需的长度

时间:2016-02-27 03:32:13

标签: java arrays string

我正在使用扫描仪输入单个字符。这个字符需要根据需要重复多次以构建特定形状。 例如:

AAAAA   <<< this would be a square made from the char A
AAAAA
AAAAA

我有一个超类Shape和子类square,diamond,circle。 shapeString是Sha​​pe中使用的公共静态var,用于显示根据使用的char构建的字符串。这是我的for循环设置所需数组的长度。我需要帮助将数组的长度设置为循环大小。

System.out.println("Type an upper or lower case letter or one of these special characters: !, #, $, %, &, (, ), *, + Press ENTER");
setChar = input.next(); 
char[] stringSetChar = setChar.toCharArray();
for(int i = 0; i < shapeString.length(); i++ {
  stringSetChar.length([i]); // help here!
  shapeString = new String(stringSetChar);
}

1 个答案:

答案 0 :(得分:0)

我会使用传递给Shape的构造函数的“模板”字符串,并Shape实现draw()方法,该方法使用模板通过替换占位符来创建输出带有所需字符的字符:

abstract class Shape {
    private final String template;

    protected Shape(String template) {
        this.template = template;
    }

    public void draw(char c) {
        System.out.println(template.replace('.', c));
    }
}

class Square extends Shape {
    public Square() {
        super(".....\n.....\n.....\n");
    }
}

这些方法允许绘制任意形状(例如字母,表情符号等)。

一些测试代码:

new Square().draw('A');

输出:

AAAAA
AAAAA
AAAAA