qq_37552027
qq_37552027
采纳率0%
2017-07-21 05:31 阅读 4.7k

判断一个字符在字符串中出现的次数

本人菜鸟

判断一个字符在字符串中出现的次数,
连续出现算一次
如fdgfdfffffffffdff 出现的次数:4

// 接收字符串
System.out.println("请输入一个字符串:");
Scanner input = new Scanner(System.in);
String str1 = input.next();
// 将字符串转为字符数组
char[] ch = str1.toCharArray();
// 接收需查找的字符
System.out.println("请输入一个查找的字符:");
Scanner inputstr = new Scanner(System.in);
char input2 = inputstr.next().charAt(0);
int num = 0;

        for (int i = 0; i < ch.length +1 ; i++) {
            if (input2 == ch[i] || input2 != ch[i-1]) {
                num++;
            }
        }
        System.out.println("num:" + num);

在字符数组中遍历的时候,,for循环中的i < ch.length 时,如果是需要查找的字符在字符串中最后一位,那就会越界

如果是 i < ch.length - 1 就不会越界,但是,最后一个就不会遍历到

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • u014074697 张大教主 2017-07-21 05:42
    下标从0开始遍历,到 ch.length-1正好遍历完,改成下面这正写法
    for (int i = 0; i < ch.length ; i++) {
            if (input2 == ch[i] || input2 != ch[i-1]) {
                num++;
            }
        }
    
    点赞 评论 复制链接分享
  • zoulingchao zoulingchao 2017-07-21 05:43

    你确定你这个如果要查找的字符在第一位不会出错吗。。。

    点赞 评论 复制链接分享
  • q975583865 一点寒芒先至 2017-07-21 05:47

    i < ch.length - 1是对的,最后一个可以遍历到,数组从0开始的,不然你吧int i=0 写为 int i=1

    点赞 评论 复制链接分享
  • u014074697 张大教主 2017-07-21 05:47
    //没看里面的内容
    for (int i = 1 i < ch.length ; i++) {
        if (input2 == ch[i] || input2 != ch[i-1]) {
            num++;
        }
    }
    
    点赞 评论 复制链接分享
  • grove009 grove009 2017-07-21 05:52

    var str = 'fdgfdfffffffffdf';
    var j=0
    for(var i=0;i<str.length;i++){
    if(str[i]=='f'&&str[i+1]!='f'){
    j++;
    }
    }
    console.log(j);

    点赞 评论 复制链接分享
  • hjywyj 骑着蜗牛去爬山 2017-07-21 06:07

    var str = 'fdgfdfffffffffdf';
    var c='f';
    var pattern=new RegExp(c+"+","g");
    var num=str.match(pattern).length;
    console.log(num);

    点赞 评论 复制链接分享

相关推荐