2017-03-31 63 views
2

我正在學習java,現在我的任務是模擬一個象棋符號。如何在Java中隨機選擇字母?

我已經做了隨機INT代碼,但不知道如何做一個隨機的字母代碼,事情是我只需要選擇從A隨機字母H,我已經看到了隨機所有信發電機卻苦於不工作我的方式來了解如何只生成AH

我的其他問題是我能否將字符和整數存儲在矩陣[k][8]中,還是必須以特殊方式初始化它?

想法是創建類,然後嘗試隨機生成國際象棋符號。在這個階段,這些符號不必有意義。

以下是我用於INT隨機

import java.util.Random; 

static Random rnd = new Random(); 
static int rnd(int A, int B) { 
    return A + rnd.nextInt(B - A + 1); 

此外,我怎麼可以從指定的字母將代表國際象棋數字隨機選擇?

我不需要確切的代碼推向正確的方向將是綽綽有餘。

+0

您可以添加字母到一個數組,然後使用的Math.random爲數組索引 – AMB

+2

'回報「A」 + rnd.nextInt(8);'不要忘記將結果轉換爲'char'。此外,這可能會識別棋盤上的一列 - 但它不代表國際象棋棋子(或國際象棋棋盤格)。 –

+0

謝謝,對於國際象棋人物,我想到了創造另一個隨機功能,將從給定的國際象棋數字可用。不知道這是否是最好的方式,但這是我的頭腦 –

回答

4

這樣的事情呢?

Random rnd = new Random(); 
String characters = "ABCDEFGH"; 
char randomChar = characters.charAt(rnd.nextInt(characters.length())); 
+0

謝謝,會給它一個嘗試,並寫一個評論 –

+0

這是好的,一個數組更容易維護,如果你曾經切換到選擇隨機字符串,而不是字符雖然 – Cruncher

+0

@RyneIgnelzy你已經答應寫評論:)你解決了你的問題嗎? –

1

您可以創建此工具類與static方法:

public class RandomUtils { 
    public static char generateRandomChar() { 
     char[] chars = "ABCDEFGH".toCharArray(); 
     Random random = new Random(); 
     return chars[random.nextInt(chars.length)]; 
    }