在Java中,你如何随机选择一个字母(a-z)?

时间:2011-03-05 09:24:29

标签: java random

如果我想在a和z之间随机选择一个字母,我假设我必须使用Random类:

Random rand = new Random();

但由于这只会生成数字,我需要做些什么来将其应用于字母?

9 个答案:

答案 0 :(得分:23)

Random r = new Random();
char c = (char) (r.nextInt(26) + 'a');

答案 1 :(得分:4)

字母,或者更确切地说,字符是数字(在扩展的ascii中从0到255,在非扩展中从0到127)。例如,在ASCII中,'A'(引用意味着字符,而不是字符串)是65.所以1 +'A'会给你66 - 'B'。 所以,你可以从0到26取一个随机数,将它添加到字符'a',这里你是:随机字母。

你也可以用一个字符串来做,键入“abcdefghijklmnopqrstuvwxyz”并在这个链中取一个随机位置,但是Barker解决方案更优雅。

答案 2 :(得分:3)

改变@Michael Barker的版本

    Random r = new Random();
    int c = r.nextInt(26) + (byte)'a';
    System.out.println((char)c);

答案 3 :(得分:2)

char randomLetter = (char) ('a' + Math.random() * ('z'-'a' + 1));

答案 4 :(得分:1)

import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
...
randomAlphabetic(1).toLowerCase()

这会为您提供一个包含单个字符的字符串

答案 5 :(得分:1)

要从(a-z)中随机选择一个字母,我会执行以下操作:

Random rand = new Random();
...
char c = rand.nextInt(26) + 'a';

由于 Random.nextInt()会生成0到25之间的值,因此您只需添加'a'的偏移量即可生成小写字母。

答案 6 :(得分:1)

为什么要假设使用Random而不是Math.random?您甚至可以使代码更短...


function draw() {
   var texWidth=800;
   var texHeight=600;
   gl.clearColor(0.0, 0.0, 0.0, 1.0);
   
   //get variable of Uint8Array from C++ Native Addon
   pixels = myaddon.get();
   texture = gl.createTexture();
   gl.bindTexture(gl.TEXTURE_2D, texture);
   //Crash here
   gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, texWidth, texHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE,pixels);
   gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
   gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
   gl.bindTexture(gl.TEXTURE_2D, null);

   gl.clear(gl.COLOR_BUFFER_BIT);
   gl.useProgram(program);
   gl.activeTexture(gl.TEXTURE0);
   gl.bindTexture(gl.TEXTURE_2D, texture);
   gl.uniform1i(uniforms['u_texture'], 0);
   gl.drawArrays(gl.TRIANGLES, 0, 6);
}

答案 7 :(得分:0)

使用字母的ascii值生成随机数。

答案 8 :(得分:0)

Random r = new Random();
char symbel = (char)(r.nextInt(26) + 'a');
if(symbel>='a' && symbel <= 'z') {
    System.out.println("Small Letter" + symbel);
} else {
    System.out.println("Not a letter" + symbel);
}
相关问题