A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 想成为黑马 中级黑马   /  2014-11-4 11:58  /  1843 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

随机产生若干字母(A~Z间),直到出现字母Q停止。

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

7 个回复

倒序浏览
你可以尝试用随机数,定义范围是A~Z之间,当得到的随机数值等于Q的值时,就可以了。
回复 使用道具 举报
我 的思路是 先建立一个数组,把A-Z 写进去。
然后建立random
取随机的角标。
当出现q对应的角标时就停止。
回复 使用道具 举报
  1. package cn.verification;
  2. import java.util.Random;
  3. public class Test {
  4.         public static void main(String[] args) {
  5.                 String s = random();
  6.                 System.out.println(s);
  7.         }
  8.         public static String random() {
  9.                 String[] str = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "g", "k",
  10.                                 "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
  11.                                 "x", "y", "z" };
  12.                 Random r = new Random();
  13.                 StringBuffer buffer = new StringBuffer();
  14.                 while (true) {
  15.                         int i = r.nextInt(str.length);
  16.                         if (str[i].equals("q")) {
  17.                                 buffer.append(str[i]);
  18.                                 break;
  19.                         } else if (buffer.indexOf(str[i]) >= 0) {
  20.                                 continue;
  21.                         } else {
  22.                                 buffer.append(str[i]);
  23.                         }
  24.                 }
  25.                 return buffer.toString();
  26.         }
  27. }
复制代码
不知道是不是你想要的效果
回复 使用道具 举报
查表法的思想, 把字母存入数组然后操作角标就可以了。用Math
回复 使用道具 举报
字母类型为字符型,可以直接产生随机数,然后加一条件判断就行啦
回复 使用道具 举报
姜浩 中级黑马 2014-11-4 14:19:00
7#
  1.         public static void main(String[] args)
  2.         {
  3.                 Random rdm = new Random();
  4.                 while (true)
  5.                 {
  6.                         char c = (char) (rdm.nextInt(25) + 65);
  7.                         System.out.print(c + " ");
  8.                         if (c == 'Q')
  9.                         {
  10.                                 break;
  11.                         }
  12.                 }
  13.         }
复制代码

这种方法是直接随机产生,65-90之间的之间的整数,再通过这些数找到ascii码中对应的字母。
回复 使用道具 举报
  1. import java.util.Random;

  2. public class Test1 {
  3.         public static void main(String[] args) {
  4.                 getLetter();
  5.         }

  6.         private static void getLetter() {
  7.                 StringBuilder sb = new StringBuilder();
  8.                 int temp;
  9.                 char c;
  10.                 do {
  11.                         temp = new Random().nextInt('Z' - 'A' + 1) + 'A';
  12.                         c = (char) (temp);
  13.                         sb.append(c);
  14.                 } while (c!='Q');
  15.                 System.out.println(sb);
  16.         }
  17. }
复制代码
和楼上想法一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马