import java.util.ArrayList;
public class FizzBuzz{
public static void main(String[] args){
System.out.println(fizzBuzz(15));
}
public ArrayList<String> fizzBuzz(int n) {
ArrayList<String> results = new ArrayList<String>();
for (int i = 1; i <= n; i++) {
if (i % 15 == 0) {
results.add("fizz buzz");
} else if (i % 5 == 0) {
results.add("buzz");
} else if (i % 3 == 0) {
results.add("fizz");
} else {
results.add(String.valueOf(i));
}
}
return results;
}
}
我正在尝试打印出FizzBuzz数组。但是,为什么我不能在这里用名字来调用下面的方法呢?有人可以帮帮我吗?欣赏!
答案 0 :(得分:0)
您可以先实例化一个对象,然后在其上调用该方法。像这样:
import java.util.ArrayList;
public class FizzBuzz{
public static void main(String[] args){
FizzBuzz obj = new FizzBuzz; //Create an instance
System.out.println(obj.fizzBuzz(15)); //Call the mouthed through that
}
public ArrayList<String> fizzBuzz(int n) {
ArrayList<String> results = new ArrayList<String>();
for (int i = 1; i <= n; i++) {
if (i % 15 == 0) {
results.add("fizz buzz");
} else if (i % 5 == 0) {
results.add("buzz");
} else if (i % 3 == 0) {
results.add("fizz");
} else {
results.add(String.valueOf(i));
}
}
return results;
}
}
更简单的方法是将fizzbuzz()
方法更改为静态,但这不是一个好主意
现在,您将使用上述任一方法获得所需的输出
[1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizz buzz]
答案 1 :(得分:0)
解决此问题的一种方法是将方法更改为静态:
public static ArrayList<String> fizzBuzz(int n) {
//...
如果从main方法调用方法,则它必须是静态的,因为main
方法是static
,而static
方法只能引用static
个对象。
但更好的做法是创建一个类的实例,然后通过类的实例调用该方法:
public static void main(String[] args){
FizzBuzz fb = new FizzBuzz();
ArrayList<String> result = fb.fizzBuzz(15);
System.out.println(result);
}
这样你就不必制作方法static
。
无论哪种方式,您都可以获得相同的输出,但第二种选择更专业,更整洁,更完美。