簡體   English   中英

如何在Java中隨機寫一封信?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM