字符串对象

74 阅读2分钟
  1. 根据字符返回位置
      //  1.  根据字符返回位置
      // 查找字符串中某个出现的位置及次数
      //  核心算法:先查找第一个o的位置
      //  只要indexOf返回的结果不是-1  就继续往后查找
      //  后面的查找利用第二个参数  当前索引加1  从而继续查找
      var str = "abcoefoxyozzopp";
      var index = str.indexOf("o");
      var num = 0;
      //   console.log(index);
      while (index !== -1) {
        console.log(index);
        num++;
        index = str.indexOf("o", index + 1);
      }
      console.log("o出现的次数是:" + num);

课后作业

      var arr = ["red", "blue", "yellow", "green", "red", "pink", "red"];
      var index = arr.indexOf("red");
      var num1 = 0;
      while (index !== -1) {
        console.log(index);
        num1++;
        index = arr.indexOf("red", index + 1);
      }
      console.log("red出现的次数是:" + num1);
  1. 根据位置返回字符
      //  (1)  charAt(index)  根据位置返回字符
      var str = "andy";
      console.log(str.charAt(2));
      //  遍历所有的字符
      for (var i = 0; i < str.length; i++) {
        console.log(str.charAt(i));
      }

      //  (2)  charCodeAt(index)  返回相应索引号的字符ASCII值  目的  判断用户按下了哪个键
      console.log(str.charCodeAt(0));

      //  (3)  str[index]  H5新增的
      console.log(str[0]);
  1. 判断字符串里面出现最多的字符,并统计其次数
  • 利用chatAt() 遍历这个字符串
  • 把每个字符都存储给对象,如是对象没有该属性,就为1,如果存在该属性,就+1
  • 遍历对象,得到最大值和该字符
      /* 一个小思路  以这个方式来判断里面是否有该属性 对象['属性名']
      var a = {
        age: 10,
      };
      if (a["age"]) {
        console.log("里面有该属性");
      } else {
        console.log("里面没有该属性");
      } */
      
      var str2 = "abcoefoxyozzopp";
      var o = {};
      for (var i = 0; i < str2.length; i++) {
        var chars = str2.charAt(i);  // chars是字符串里面的每一个字符
        if (o[chars]) {    // o[chars]得到的是属性值
          o[chars]++;
        } else {
          o[chars] = 1;
        }
      }
      console.log(o);
      //  遍历数组对象
      var max = 0;
      var ch = "";
      for (var k in o) {
        //  k 里面是属性名
        //  o[k]  得到的是属性值
        if (o[k] > max) {
          max = o[k];
          ch = k;
        }
      }
      console.log(max);
      console.log("最多的字符是" + ch);
  1. 字符串操作方法

substr("截取的位置","截取几个字符")

      //  substr("截取的位置","截取几个字符")
      var str3 = "改革春风吹满地";
      console.log(str3.substr(2, 3));

替换字符replace("被替换的字符","替换为的字符") // 只会替换第一个字符

      //  替换字符replace("被替换的字符","替换为的字符")  //  只会替换第一个字符
      var str4 = "andy";
      console.log(str4.replace("a", "l"));

      //  实操  "abcoefoxyozzopp"  中所有的o替换为*
      var str5 = "abcoefoxyozzopp";
      while (str5.indexOf("o") !== -1) {
        str5 = str5.replace("o", "*");
      }
      console.log(str5);

字符转换为数组 split("分隔符")

      //  字符转换为数组 split("分隔符")
      var str6 = "nicey,pink,red";
      console.log(str6.split(","));
      var str7 = "nicey&pink&red";
      console.log(str7.split("&"));

课后作业

      var str8 = "abaasdffggghhjjkkgfddsssss3444343";
      //  1.字符长度
      console.log(str8.length);
      //  2.取出指定位置字符
      console.log(str8.substr(0, 1));
      console.log(str8.substr(3, 1));
      console.log(str8.substr(5, 1));
      console.log(str8.substr(9, 1));
      //   3.查找指定字符是否存在   indexOf 为-1则是否
      console.log(str8.indexOf("a"));
      //   4.替换指定字符
      console.log(str8.replace("g", "22"));
      //   5.截取字符
      console.log(str8.substr(0, 5));
      //   6.找出字符串中出现次数最多的字符后出现的次数
      var num = 0;
      var o8 = {};
      var index8 = str8.indexOf("o");
      for (var i = 0; i < str8.length; i++) {
        var chars2 = str8.charAt(i);
        if (o8[chars2]) {
          o8[chars2]++;
        } else {
          o8[chars2] = 1;
        }
      }
      console.log(o8);
      var ch = "";
      for (var k in o8) {
        if (o8[k] > num) {
          num = o8[k];
          ch8 = k;
        }
      }
      console.log(num);
      console.log("最多的字符是" + ch8);