黑马程序员技术交流社区

标题: ,这个题目怎么解啊,求大神 [打印本页]

作者: 想成为黑马    时间: 2014-11-4 11:58
标题: ,这个题目怎么解啊,求大神
随机产生若干字母(A~Z间),直到出现字母Q停止。
作者: mingtianrsm    时间: 2014-11-4 12:01
你可以尝试用随机数,定义范围是A~Z之间,当得到的随机数值等于Q的值时,就可以了。
作者: qq8921310    时间: 2014-11-4 12:02
我 的思路是 先建立一个数组,把A-Z 写进去。
然后建立random
取随机的角标。
当出现q对应的角标时就停止。
作者: hailong    时间: 2014-11-4 12:57
  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. }
复制代码
不知道是不是你想要的效果

作者: wf111sxwf    时间: 2014-11-4 13:15
查表法的思想, 把字母存入数组然后操作角标就可以了。用Math
作者: lighter    时间: 2014-11-4 13:36
字母类型为字符型,可以直接产生随机数,然后加一条件判断就行啦
作者: 姜浩    时间: 2014-11-4 14:19
  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码中对应的字母。
作者: 九零零    时间: 2014-11-4 15:13
  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. }
复制代码
和楼上想法一样





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2