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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huyuxiong 初级黑马   /  2016-9-16 07:27  /  943 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

键盘录入一个字符串,再录入一个字符。然后获取字符在字符串中出现的次数和出现的位置。如果输入的字符在字符串中查询不到,则在字符串中随机打印一个(要求输出随机取出的字符也要输出出现的次数和位置)
哪位大神帮帮我?

5 个回复

正序浏览
............................
回复 使用道具 举报
huyuxiong 来自手机 初级黑马 2016-9-17 07:16:08
报纸
我也不知道
回复 使用道具 举报
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+ " ");
                }
回复 使用道具 举报
我的思路是这样的:

先把字符串转换为字符数组arr.搞个判断,条件是字符数组是否包含该字符,
如果true,则进入一个for循环遍历数组,再挨个判断数组的每个元素和该字符是否相等,计数器统计;
如果false,也进入一个for循环,在循环里定义一个随机数,r.nextInt(arr.length),获取到该随机索引上的字符元素,进入遍历,计数器统计.
仅提供参考
回复 使用道具 举报
兄弟,这些题,基础班的好过么,会很难上就业班么
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马