Scanner输入仅在主方法中有效吗?

时间:2011-11-22 22:58:23

标签: java java.util.scanner

正如你可能从我的其他问题中看到的那样,我正在设计一个小游戏和十字架游戏。我开始设计它并为它编写测试,我设法使它们全部通过。所以从技术上讲,我通过测试来玩游戏。

现在我想让游戏与用户进行一些互动,所以我在我的游戏类中插入了主要方法。我已经有方法进行移动并确定它是否有效。当我尝试将扫描仪合并到已经存在的方法中并使用扫描仪的next()或nextLine()方法时,它不起作用。但是当我在main方法中放入相同的代码时,它可以工作并要求我在控制台上输入。

扫描仪仅适用于主方法吗?如果是这样,我有什么选择通过控制台输入我的游戏?

由于我的基本能力

,我将不胜感激

以下是我的内容

 public static void main (String args []){

}

public boolean playMove (player player, String value, int index) {
Scanner in = new Scanner (System.in);
System.out.print("Enter Value");
value = in.next();

}

也许我的错误是将主方法留空。因为我已经有方法可以执行我想要的功能并且所有测试都通过了,所以我不想将内容移动到main方法。有什么建议吗?

由于

1 个答案:

答案 0 :(得分:2)

工作得很好。

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        System.out.println(test());
    }

    private static String test() {
        Scanner stdin = new Scanner(System.in);
        return stdin.nextLine();
    }
}

我的假设是你有一个范围问题,发布你的代码。

/ E1
如果您想要发生任何事情,您必须在main方法中调用它。您需要(可能)拥有game loop,而不是将主方法留空。在这种情况下,如果您只想调用该方法,请添加playMove(null, null, 0)以使用Scanner