import java.util.Vector;public class Letters {
    public static void main(String[] args) {
        int x = 0;
        Vector<Character> myLetters = new Vector<Character>();
        int count = 0;        for (int i = 0; i < 100; i++) {
            x = (int) (Math.random() * 26);
            char[] chs = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                    'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                    'W', 'X', 'Y', 'Z' };
            char myChar = chs[x];
            myLetters.add(myChar);
            System.out.print(myChar + " ");
        }
        System.out.println();
        for (int i = 0; i < 100; i++) {
            if (myLetters.elementAt(i) == ('A')
                    || myLetters.elementAt(i) == ('E')
                    || myLetters.elementAt(i) == ('I')
                    || myLetters.elementAt(i) == ('O')
                    || myLetters.elementAt(i) == ('U')) {
                count++;
            }
        }
        System.out.println("元音字母个数有:" + count);
    }
}

解决方案 »

  1.   

    x = (int) (Math.random() * 26);
    x 属于 (0,26)
    public static double random()
    Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
      

  2.   

    补充下,int x 故 x=1,2,3,.....26;分别对应26个英文字母的序号。
      

  3.   

      (int) (Math.random() * 26) 
            Math.random() 返回的是0~0.999999999999999999... 的其中一个值
       所以返回结果就是0~25 
      

  4.   

     x = (int) (Math.random() * 26);
    返回 [0,26) 其中一个整数
    Math.random() 随机[0,1)之间的数
      

  5.   

    返回带正号的 double 值,大于或等于 0.0,小于 1.0
      

  6.   

    Math.random()是返回0~1之间的 double
    乘26是得到 0到25之间的数 包含254楼正解