2016-06-12 100 views
-1

我正在写一个简单的tic tac脚趾游戏,并且需要在轮到他们时接受用户输入。玩家应该简单地提供一组坐标以便将他们的令牌(1,1)放置到(3,3)的位置。我应该能够接受输入为“2 1”或“2,1”或“2,1”。所以我需要能够接受他们的字符串输入并提取这两个数字中的每一个,而不管分隔符如何,并使用它们将令牌分配给3x3数组中的指定单元格。从一个字符串到一个Int数组的整数

主要的捕获只能够利用我们已经教过的东西(这是Java的第一季度)。这是构建Java程序的前七章,它由扫描器,条件/逻辑,循环和数组组成。没有模式,匹配器,列表等

有没有办法使用只有String类,扫描仪或数组来完成这个?

+0

是的。您可以使用Scanner类,String类以及数组来完成此操作。在这个网站上有很多关于如何这样做的例子。 –

+0

Sanner:http://stackoverflow.com/questions/11871520/how-can-i-read-input-from-the-console-using-the-scanner-class-in-java –

+0

拆分字符串:http:/ /stackoverflow.com/questions/14414582/java-split-string-to-array –

回答

0

只需使用String类,你可以使用String.split()来获取一个字符串数组,然后可以解析为整数

​​
+0

我结束了这个变化。在发布这个时间之前,我试了一下:)谢谢大家! –

+0

@Kiz当用户想要输入“2,1”时,您可能想要处理异常。 java.lang.NumberFormatException。 – Twahanz

+0

事实上,我通过在顶部添加一行来解决了问题:'System.out.println(“请提供您的输入格式:\”xy \“”);' –

0

更新

忘了补充“”转换char转换为String。

Scanner input = new Scanner(System.in); 

String userInput; 
String[] coordinates = new String[2]; 

char character; 
int length; 

userInput = input.nextLine(); 
length = userInput.length(); 

if(length > 2){ 
    coordinates[0] = "" + userInput.charAt(0); 
    character = userInput.charAt(2); 

    if(character != ',' && character != ' '){ 
    coordinates[1] = "" + character; 
    } 
    else{ 
    coordinates[1] = "" + userInput.charAt(3); 
    } 
} 

解释:

我们使用一个数组来存储你需要两个positons。

我们使用一个字符来存储读入输入位置。

我们得到读取输入的长度。这是为了验证它是否正确。由于正确的输入应该至少超过2个字符。我们知道第一个位置是有效的,所以我们立即分配它。我们也知道第二个位置不能是有效的,所以我们跳过它(charAt(2)而不是charAt(1))然后我们检查第三个如果不是我们分配第四个职位,职位是有效的。

Goodluck!

+0

是的,我没有删除我的评论时间。我试了一下,它不适合我。 –

+0

@AaronHansen我很抱歉,我是从我的头上这样做的。我已经更新了答案。 – Twahanz

+1

@Tom谢谢你指出。 – Twahanz

相关问题