Java是否具有生成随机字符或字符串的任何功能?或者只需选择一个随机整数并将该整数的ascii代码转换为字符?
dog*_*ane 118
要在az中生成随机字符:
Random r = new Random();
char c = (char)(r.nextInt(26) + 'a');
Run Code Online (Sandbox Code Playgroud)
pol*_*nts 82
有很多方法可以做到这一点,但是,它涉及生成随机int(使用eg java.util.Random.nextInt)然后使用它来映射到a char.如果你有一个特定的字母表,那么这样的东西很漂亮:
import java.util.Random;
//...
Random r = new Random();
String alphabet = "123xyz";
for (int i = 0; i < 50; i++) {
System.out.println(alphabet.charAt(r.nextInt(alphabet.length())));
} // prints 50 random characters from alphabet
Run Code Online (Sandbox Code Playgroud)
请注意,这java.util.Random实际上是基于相当弱的线性同余公式的伪随机数生成器.你提到了密码学的必要性; 在这种情况下,您可能想要研究使用更强大的加密安全伪随机数生成器(例如).java.security.SecureRandom
Jos*_*ema 70
您还可以使用Apache Commons项目中的RandomStringUtils:
RandomStringUtils.randomAlphabetic(stringLength);
Run Code Online (Sandbox Code Playgroud)
Pet*_*ser 11
private static char rndChar () {
int rnd = (int) (Math.random() * 52); // or use Random or whatever
char base = (rnd < 26) ? 'A' : 'a';
return (char) (base + rnd % 26);
}
Run Code Online (Sandbox Code Playgroud)
生成范围az,AZ中的值.
小智 9
String abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char letter = abc.charAt(rd.nextInt(abc.length()));
Run Code Online (Sandbox Code Playgroud)
这个也有效。
| 归档时间: |
|
| 查看次数: |
208641 次 |
| 最近记录: |