我正在使用扫描仪输入单个字符。这个字符需要根据需要重复多次以构建特定形状。 例如:
AAAAA <<< this would be a square made from the char A
AAAAA
AAAAA
我有一个超类Shape和子类square,diamond,circle。
shapeString
是Shape中使用的公共静态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);
}
答案 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