[英]How to get a random letter in Java?
我希望使用像這樣的隨機信件
char ch = 'A' + randomNumber ; // randomNumber is int from 0 to 25
但這會導致“精度損失”編譯錯誤(如果randomNumber只是一個字節,則相同)。 我猜對於Unicode,上面的內容過於簡單化了。
這有效,但似乎有點笨拙:
char ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(randomNumber);
我該怎么辦?
char ch = (char) (new Random().nextInt('Z' - 'A' + 1) + 'A')
您可以將任何字符替換為“A”和“Z”,以實現更廣泛的范圍。
問題是由於嘗試將int
分配給char
。
由於int
是32位且char
是16位,因此分配int
可能會導致精度損失,因此在編譯時會顯示錯誤消息。
如果您知道自己將處於適當的范圍內,那么只需投射:
char ch = (char) ('A' + randomNumber);
這個怎么樣? 丑陋的投射,但沒有編譯錯誤。 應該生成隨機大寫字母:
int rand = (int) (Math.random() * 100);
int i = 65 + (rand % 26);
char c = (char) i;
System.out.println(c);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.