我真的想做一個類,可以產生12個隨機數字3個隨機字母。我在隨機請求int而不是char時遇到了一些麻煩。感謝幫助! :)從數組中隨機生成三個特定的字母
回答
首先,你需要定義一個字母,它包含了所有有效字符。然後你的代碼可以是這樣的:
public char generateRandomLetterFromAlphabet(String alphabet) {
Random random = new Random();
return alphabet.charAt(random.nextInt(alphabet.length()));
}
這裏,nextInt(alphabet.length())
返回和零之間的隨機指數字母串的長度,所以你的字母表中的隨機字符被generateRandomLetterFromAlphabet
返回。請注意,Random
會生成僞隨機號碼。
當然,你的字母可以通過一個數組來定義了。這裏有一個函數從字母表字符數組生成的隨機字符指定號碼:
public char[] generateRandomLettersFromAlphabet(char[] alphabet,
int numberOfLetters) {
if (numberOfLetters < 1) {
throw new IllegalArgumentException(
"Number of letters must be strictly positive.");
}
Random random = new Random();
char[] randomLetters = new char[numberOfLetters];
for (int i = 0; i < numberOfLetters; i++) {
randomLetters[i] = alphabet[random.nextInt(alphabet.length)];
}
return randomLetters;
}
我用'char'數組的一個通用示例更新了我的答案。 – thatguy
有50442個字母散佈在碼點數字空間中,所以字母表是一個很好的主意。 –
您可以使用ASCII碼爲隨機整數轉換爲對應的字符。大約在ASCII更多信息:http://www.ascii-code.com/
這種簡單的方法輸出基於65(資本A)和90(資本Z)之間的隨機整數炭。
public char randomChar(){
Random r = new Random();
int num = r.nextInt(26) + 65;
return (char) num;
}
現在你可以調整這個方法來達到你自己的目的。
'char'是一個UTF-16編碼單元,不是ASCII碼單元。 (UTF-16是Unicode字符集的編碼。)65的確是代碼點[Latin Capital Letter A]的一個UTF-16代碼單元(http://www.fileformat.info/info/unicode/char/ 0041/index.htm),但它更容易理解爲「A」。 –
- 1. 從數組中隨機生成的字母有問題
- 2. 生成隨機字母和固定數量的組合
- 3. 生成獨特的隨機字母數字字符串
- 4. 生成隨機字母的函數
- 5. 從隨機生成的特定數字中提取
- 6. 從給定數字生成隨機數
- 7. C#二維數組中的隨機字母生成器 - 問題
- 8. 隨機生成器字母和整數
- 9. 生成特定的隨機字符串數組
- 10. 在數組中生成隨機數字
- 11. 生成隨機字母在Java中
- 12. 如何從特定字母列表中獲取隨機字母?
- 13. 從特定數字生成隨機數as3
- 14. 生成一個排除特定字符的隨機數
- 15. 添加四個隨機生成的數字中的三個最高數字
- 16. 以特定間隔生成隨機數
- 17. 從隨機設置的特定字母創建一個詞
- 18. C++:如何從一個數組中生成一個隨機數
- 19. 生成範圍沒有特定數字的隨機數
- 20. 生成一組隨機數
- 21. 生成隨機數組
- 22. 從數組生成隨機結果
- 23. 如何從給定的一組值中生成隨機數?
- 24. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 25. 隨機產生特定數字
- 26. 如何從java中的數組中隨機生成一個唯一的數字
- 27. 從隨機長生成隨機數
- 28. 生成獨特的隨機字符串
- 29. 在隨機生成50個隨機數中使用隨機數#
- 30. 用於生成隨機字母數字值的SOAP UI方法
誠勿擾「有一些麻煩,」那意味着你有一些代碼,完全不是那麼回事 - 所以請表明代碼,並給出什麼不工作細節。 –
「隨機請求int而不是char」是什麼意思? –