我正在做一个编码挑战,以Z字形打印给定的文本:
thisisazigzag:
t a g
h s z a
i i i z
s g所以我有了我的代码(不确定它是否正确,但这不是问题的一部分)
class Main {
public void zigzag(String text, int lines) {
String zigLines = [];
while(lines > 0){
String line = "";
increment = lines+(lines-2);
lines = lines + (" " * (lines-1));
for(int i=(lines-1); i<text.length(); i+=increment) {
line = line + text[i] + (" " * increment);
}
zigLines.add(0, line);
lines--;
}
for(line in zigLines){
println(line);
}
}
static void main(String[] args) {
zigzag("thisisazigzag", 4);
}
}但是当我运行脚本时,我一直收到这个错误:
groovy.lang.MissingMethodException: No signature of method: static Main.zigzag()
is applicable for argument types: (String, Integer) values: [thisisazigzag, 4]
Possible solutions: zigzag(java.lang.String, int)我对java.lang.String和String的区别以及Integer和int之间的区别感到非常困惑
任何对此的帮助或解释都将是非常好的!
谢谢。
发布于 2018-09-15 05:33:54
您应该将您的zigzag方法设置为static。
您的代码无法工作,因为如果没有static修饰符,zigzag是一个实例方法,这意味着您需要类Main的一个实例才能调用它。这里有一个介绍性教程,解释了其中的一些概念:docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
https://stackoverflow.com/questions/52339264
复制相似问题