zoukankan      html  css  js  c++  java
  • 4:String 构造函数

    知识梳理

    //1 字符串的不可变性
    //2 每拼接一次 都会在内存中新开辟一个空间
    //3 每赋值一次 都会在内存中新开辟一个空间
    //4 字符串所有方法 都不会修改字符串本身 都是返回新字符串

    知识目录

    //1 根据字符返回位置 indexOf lastIndexOf
    //2 根据位置返回字符 //2 替换字符串 //3 拼接字符串 //4 字符串转换为数组
    //5 转换大小写

    一  基本方法

    1)根据字符返回索引

    //1 正向查找  indexOf('要查找的字符',[开始的位置]);
    //2 反向查找  lastIndexOf();
    var str = '桃花开了,桃叶绿了';
    console.log(str.indexOf('桃',3));//从索引号第三个查找 '桃' 

    2)根据索引返回字符 [ charAt ]

    //1 根据索引号返回字符
    var str = 'abcdefg';
    var index = str.charAt(0);
    // charAt('索引号');
    // console.log(index);
    
    //典型应用:遍历字符串
    for (var i = 0; i < str.length; i++) {
        console.log(str.charAt(i));
    }


    //2 h5新增 str(index) = charAt();
    //3 根据索引号返回ASCII码 判断用户按下了哪个键 for (var i = 0; i < str.length; i++) { console.log(str.charCodeAt(i)); }

    3)字符串替换 [ replace ]

    var color = 'red'; 
    console.log(color.replace('e','a')); //只替换第一个 替换多个需要用到正则
    console.log(color.replace('替换谁','替换为谁'));
    
    

    4)转换为数组  [ split ]

    var str = 'red,blue,green';
    str = str.split(',');
    var str1 = 'red&blue&green';
    str = str.split('&');

    5)转换大小写

    toUpperCase();//转换大写
    toLowerCase();//转换小写

    二 实操案例

    1)求某个字符出现的位置和次数 [ 重点案例 ]

    //indexOf 返回第一个元素出现的位置 找不到返回 -1
    //核心算符:先找到第一个o出现的位置
    //然后:只要indexOf不是-1 就继续往后查找
    //因为indexOf只能查找到第一个,所以后面的查找,我们利用第二个参数,当前索加1,从而继续查找
        
    //需求:abcoefoxyozzopp 求所有o出现的位置和次数
    var str = 'abcoefoxyozzopp';
    var index = str.indexOf('o'); //查找O第一次出现的位置 赋值给变量index
    var num = 0;//统计次数的变量
    while (index !== -1) {
        console.log(index);
        num++;//打印一次 计数器自增1
        index = str.indexOf('o',index + 1);//我们把找到的再赋值给index
    }
    //执行流程 // 第一次循环 index = 3 // 3不等于-1 条件成立 //打印o第1次出现的位置 3 //再执行indexOf查找,从上一次o出现的索引号3后面开始查找 index+1 = 4 //在索引6的位置找到了第2个 index = 6 //第二次循环 index = 6 //6不等于-1 条件成立 //打印o第2次出现的次数 6 //再执行indexOf查找,从上一次o出现的索引号6后面开始查找 index+1 = 7 //在索引9的位置找到了第3个 index = 9 //第三次循环 index = 9 //9不等于-1 条件成立 //打印o第3次出现的次数 9 //再执行indexOf查找,从上一次o出现的索引号9后面开始查找 index+1 = 10 //在索引12的位置找到了第4个 index = 12 //第四次循环 index = 12 //12不等于-1 条件成立 //打印o第4次出现的次数 12 //再执行indexOf查找,从上一次o出现的索引号12后面开始查找 index+1 = 13 //后面没有再找到 返回-1 //在执行while条件判断 -1 !== -1 为假 循环结束 //统计次数 后面新增一个num变量计数 //每打印一次index 自增1

    2)判断字符串中出现次数最多的字符 并统计出现的次数 [ 重点案例 ]

    //核心思路
    //1 利用charAt遍历字符串 把每个字符都取出来
    //2 把每个字符都保存到一个对象属性里
    //3 如果对象没有该属性 = 1,如果有就 + 1; var str = 'abcoefoxyozzopp'; var obj = {}; //1 遍历每个字符存储到对象属性里面 for (var i = 0; i < str.length;i++) { var chars = str.charAt(i);//chars是字符串的每一个字符 if (obj[chars]) { //obj[chars]得到的是属性值 obj[chars]++;//如果存在就加1 } else { obj[chars] = 1;//如果不存在就等于1 } } console.log(obj);//{a: 1, b: 1, c: 1, o: 4, e: 1, …}

    //2 遍历对象 找到值 var max = 0;//最大值变量 var ch = '';//保存出现次数最多的字符 for (var key in obj) { //key 得到的是属性名 //obj[key] 得到的是属性值 if (obj[key] > max) { max = obj[key]; ch = key;//把最大值的属性名给变量ch 因为key出了for in 就不起作用了 }//取最大值 } console.log(max); console.log('出现次数最多的是:' + ch);

    3)替换字符串 

    案例:把字符串 'abcodfozzopp' 里面的o都替换为 *
    var str = 'abcodfozzopp';
    while (str.indexOf('o') !== -1) {
        str = str.replace('o','*');
    }
    console.log(str);
    str.indexOf('o') !== -1; 如果字符串里的o一直存在就继续循环

     作业

  • 相关阅读:
    【PowerDesigner】【2】将工具栏显示出来
    【PowerDesigner】【1】简单介绍
    【服务器】【Windows】【4】删除Windows系统中不想要的服务
    【Java】【8】StringUtils中isNotEmpty和isNotBlank的区别
    【Java】【7】枚举类
    hdu 1285
    Codeforces Round #198 (Div. 2) —— D
    Codeforces Round #198 (Div. 2) —— C
    Codeforces Round #198 (Div. 2) —— B
    Codeforces Round #198 (Div. 2) —— A
  • 原文地址:https://www.cnblogs.com/fuyunlin/p/14409170.html
Copyright © 2011-2022 走看看