0

我是 Java 新手,并试图从本质上实现一个带有字符的网格,如果用户输入“w”、“a”、“s”或“d”,则字符在平面内向上/向下/向左/向右移动。

我创建了一个大小为 10x10 的多维数组 public static String[][] grid = new String[10][10];

然后只使用一个 for 循环在 10x10 网格中打印“*”,除了 grid[a][b],它等于字符“A”,即我要移动的东西。

这似乎工作正常,然后我需要检测用户的“wasd”输入,所以我设置了一个:

Scanner in = new Scanner (System.in);
        while (in.hasNext())

那时我有:

String s = in.next();
char ch = s.charAt(0);
switch (ch)

但我无法完成这项工作,并不是因为我没有完成“switch”语句,而是我完成了,我只是看到它无法复制和粘贴整个内容。

我敢肯定我错过了它非常容易的小事,你能帮我指出吗?

4

2 回答 2

0

测试 s 的值:

if(!s.isEmpty(){ // Java 6<br>
// Your code
..;

}

那么开关就可以用'char'了。

于 2012-04-06T12:16:49.680 回答
0

查看您的代码,我猜当您说它不起作用时,您的意思是某些输入被忽略了?

我将编写代码如下:

while (in.hasNext()) {
   char ch = (char)in.nextByte();
   switch(ch) 
    ....
}

当然,这假设您只输入 ASCII 字符。

于 2012-04-06T12:30:36.650 回答