黑马程序员技术交流社区

标题: 题目如下 [打印本页]

作者: huyuxiong    时间: 2016-9-16 07:27
标题: 题目如下
键盘录入一个字符串,再录入一个字符。然后获取字符在字符串中出现的次数和出现的位置。如果输入的字符在字符串中查询不到,则在字符串中随机打印一个(要求输出随机取出的字符也要输出出现的次数和位置)
哪位大神帮帮我?
作者: 喝咖啡的玉米    时间: 2016-9-16 08:35
兄弟,这些题,基础班的好过么,会很难上就业班么
作者: 长空皓月    时间: 2016-9-16 08:59
我的思路是这样的:

先把字符串转换为字符数组arr.搞个判断,条件是字符数组是否包含该字符,
如果true,则进入一个for循环遍历数组,再挨个判断数组的每个元素和该字符是否相等,计数器统计;
如果false,也进入一个for循环,在循环里定义一个随机数,r.nextInt(arr.length),获取到该随机索引上的字符元素,进入遍历,计数器统计.
仅提供参考

作者: somnus-sir    时间: 2016-9-16 11:21
System.out.println("请输入一个字符串");
                Scanner sc = new Scanner(System.in);
                String s = sc.nextLine();//获取的字符串
                char[] arr = s.toCharArray();
               
                System.out.println("请输入一个字符");
                char cc = sc.nextLine().charAt(0);//字符
                ArrayList<Integer> list = new ArrayList<>();
               
                for (int i = 0; i < arr.length; i++) {
                        if(arr[i]==cc){
                                list.add(i);
                        }
                }
               
                if(list.size()==0){
                        Random random = new Random();
                        int index = random.nextInt(s.length()-1);//随机的索引
                        Character c2 = s.charAt(index);//随机的字符
                        for (int i = 0; i < arr.length; i++) {
                                if(c2==arr[i]){
                                        list.add(i);
                                }
                        }
                        System.out.println("字符不存在,随机得到字符: "+c2);
                }
               
                System.out.println("一共出现: " + list.size()+"次,位置: ");
                for (Integer integer : list) {
                        System.out.print(integer+ " ");
                }
作者: huyuxiong    时间: 2016-9-17 07:16
我也不知道
作者: xiguapi    时间: 2016-9-17 08:55
............................




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