黑马程序员技术交流社区

标题: 一道题,用fore循环为什么做不出来呢?? [打印本页]

作者: chennnnnn    时间: 2016-9-18 21:30
标题: 一道题,用fore循环为什么做不出来呢??
知一个String数组[衣服,零食,化妆品,鞋]随机生成6个10以内的整数然后将这六个数组拼接成一个字符串作为取货码
    共生成4个取货码(4个取货码互不相同)将这4个取货码分别和该书组里面的元素依次进行组合,组合的格式:(取货码,物品),并存入Map集合(Map<取货码,物品>)中
    根据用户输入的取货码将对应的物品打印在控制台上 ,如果取货码错误(不存在)则提示"对不起!取货码有问题"


最后的一问;用fore循环遍历不行啊.??


作者: chennnnnn    时间: 2016-9-18 21:33
补上代码,有没有更简单的方法呢??   用fore循环能做吗?
String[] arr = {"衣服", "零食", "化妆品", "鞋"};
                Random r = new Random();
               
               
                ArrayList<String> a1 = new ArrayList<>();
       
                while(a1.size()<4){
                       
                        StringBuilder sb = new StringBuilder("");
                        for (int i = 0; i < 6; i++) {
                               
                               
                                sb.append(r.nextInt(10));
                        }
                        a1.add(sb+"");
                }
               
                //,组合的格式:(取货码,物品),并存入Map集合(Map<取货码,物品>
                HashMap<String, String> h1 = new HashMap<>();
                for (int i = 0; i < arr.length; i++) {
                        h1.put(a1.get(i), arr[i]);
                }
                System.out.println(h1);
                Scanner x = new Scanner(System.in);
                System.out.println("nnnnnnnnnnn");
                String s = x.nextLine();
                while(true){
                        if (h1.keySet().contains(s)) {
                                System.out.println(h1.get(s));
                                break;
                        }else {
                                System.out.println("error");
                                break;
                        }
                }
作者: 橙子他大哥    时间: 2016-9-18 21:49
阔以啊               ......
作者: chennnnnn    时间: 2016-9-18 22:23
橙子他大哥 发表于 2016-9-18 21:49
阔以啊               ......

搞了好久也不行....给个代码呗




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