2016-06-12 133 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

相關問題