扫描仪输入是否仅在主要方法中工作?

问题描述:

正如你可能从我的其他问题中看到的那样,我正在设计一个nack和cross的游戏。我开始设计并编写测试,我设法让它们全部通过。所以在技术上,我在测试中玩游戏。扫描仪输入是否仅在主要方法中工作?

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

扫描仪只能使用主要方法吗?如果是的话,我还需要通过控制台为我的游戏输入什么选择?

答案与实例会因理解我的基本能力

下面是我

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(); 

} 

也许我的错误是在离开主法的空白。因为我已经有方法来完成我想要的功能,并且所有的测试都通过了,所以我不想将东西移动到主要方法中。有什么建议吗?

谢谢

+2

带有示例代码和比“不起作用”更具体的问题将不胜感激,因为我们缺乏ESP。当然,答案是否定的,你可以在任何地方使用该对象......就像任何其他对象一样。 –

+2

不,当然不是。那只会是愚蠢的。代码请。 (你的问题在于其他地方,并且认为它与使用*任意*扫描仪对象的位置*有关。) – 2011-11-22 23:01:04

+1

您能否粘贴一些代码? “ –

工作得很好。

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
如果您想要发生任何事情,您必须在主要方法中调用它。您不必将主要方法留空,而需要(可能)有game loop。在这种情况下,如果您只想调用该方法,请添加playMove(null, null, 0)以运行您的Scanner

+0

谢谢杰弗里。请看编辑过的问题 - 也许我的错误是将主要方法留空。因为我已经有方法来完成我想要的功能,并且所有的测试都通过了,所以我不想将东西移动到主要方法中。有什么建议吗? – uncleB

+0

@uncleB阅读我的编辑 – Jeffrey

+0

这意味着我将不得不将playMove()修改器更改为静态,因为它将在主静态方法中调用。这可以吗?任何其他方式,我可以使这项工作没有方法静态?还有什么我可以在主要方法中投掷?在此先感谢 – uncleB