033 String

一、String对象

string ---->字符串类型----基本类型
String---->字符串类型----引用类型

js中没有字符类型
注意!!!!!!js中无论是单引号的还是双引号的都是字符串
其他语言:
字符类型 单引号
字符串类型 双引号

 var str="hello";       //可以看成是一个字符数组
    for(var i=0;i<str.length;i++){
        console.log(str[i]);
    }

/*
* String---->是一个对象
* 字符串可以看成是字符组成的数组,但是js中没有字符类型
* 字符是一个一个的,在别的语言中字符用一对单引号括起来
* 在js中字符串可以使用单引号也可以使用双引号
* 因为字符串可以看成是数组,所以,可以通过for循环进行遍历
*
* 字符串特性:不可变性,字符串的值是不能改变
*
* 字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了

 */
    var str="hello";
    str[1]="W";    // 字符串可以通过索引访问字符串中的某个值
    //    但是,是可以访问---读取---只读  值不能改变
    //    设置:就是可以改变
    //对象的方式来看待
 var str="哈哈";
    str="嘻嘻";   //重新赋值,改变的是地址指向
    console.log(str);   //嘻嘻
 var str="hello";
    str[1]="W";
    console.log(str);    //hello   没有被改变
    for(var i=0;i<str.length;i++){
        console.log(str[i]);  //h e l l o
    }

二、String对象的方法
/*

  • 实例方法----> 必须要通过 new 的方式创建的对象(实例对象)来调用的方法
  • 静态方法----> 直接通过 大写的构造函数的名字 调用的方法(直接通过大写的对象名字调用的) String
  • 1、 字符串的常用!!!属性:
  • .length------>字符串的长度
  • 2、字符串的常用!!!方法:
  • .charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
  • .fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值
  • .concat(字符串1,字符串2,…);返回的是拼接之后的新的字符串
  • .indexOf(要找的字符串,从某个位置开始的索引);返回的是这个字符串的索引值,没找到则返回-1
  • .lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
  • .replace(“原来的字符串”,“新的字符串”);用来替换字符串的
  • .slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
  • .split(“要干掉的字符串”,切割后留下的个数);切割字符串
  • .substr(开始的位置,个数);返回的是截取后的新的字符串
  • .substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串
  • .toLocaleLowerCase();转小写
  • .toLowerCase();转小写
  • toLocaleUpperCase()转大写
  • .toUpperCase();转大写
  • .trim();干掉字符串两端的空格
  • */
//字符串的长度
    var str="12345";
    console.log(str.length);
//charAt(索引),返回值是指定索引位置的字符串,超出索引,结果是空字符串
    var str="whatareyounoshalei";
    var result=str.charAt(1000);  //从0开始的
    console.log(result); //空  (超出索引)
 //fromCharCode(数字值,可以是多个参数),返回的是ASCII码对应的值=======》静态方法  不怎么用,一般后台用
    var str1=String.fromCharCode(107,108,109);
    console.log(str1);   //klm
    var str2=String.fromCharCode(83,79,83);
    console.log(str2);  //sos(求救信号)
//concat(字符串1,字符串2,...);返回的是拼接之后的新的字符串
    var str="what";
    console.log(str+"are"+"you"+"no"+"sha"+"lei");  //whatareyounoshalei      用 + 号
    var str="小苏";
    console.log(str.concat("喜欢","凤姐","这是","真的"));  //小苏喜欢凤姐这是真的  用concat
 //indexOf(要找的字符串,从某个位置开始的索引; 返回的是这个字符串的 索引值 ,没找到则返回-1
    var str="小苏真的好猥好琐啊";
    var index=str.indexOf("好",5);      // 从5(第六个)开始找    如果没有5,就从0开始找
    console.log(index);   //6   第七个数
 //lastIndexOf(要找的字符串);从后向前找,但是索引仍然是从左向右的方式,找不到则返回-1
    var str="helo amen";
    var index=str.lastIndexOf("e");
    console.log(index);   //7    后面的e
//replace("原来的字符串","新的字符串"); 用来替换字符串的
    var str="小苏好帅哦,真的好勇敢哦";
    if(str.indexOf("帅")!=-1){         //判断“帅”存在
        str=str.replace("帅","猥琐");
    }
    else{
        console.log("不存在");
    }
    console.log(str);   //小苏好猥琐哦,真的好勇敢哦
 //slice(开始的索引,结束的索引); 从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
    var str = "如果有一天我邪恶了,请记住,我曾纯洁过";
    //从索引5的位置开始提取,到索引为10的前一个结束,没有10,并返回这个提取后的字符串
    str = str.slice(5, 10);
    console.log(str);  //我邪恶了,
//split("要去掉的字符串",切割后留下的个数); 切割字符串
    var str="乔峰|慕容|凤姐|梅超风|小苏|大蛇丸";
    var arr=str.split("|");   //成为数组,切割字符串
    for(var i=0;i<arr.length;i++){
        console.log(arr[i]);       // 乔峰    慕容     凤姐    梅超风     小苏      大蛇丸
    }
//substr(开始的位置,个数);返回的是截取后的新的字符串
    var str="哈哈,小苏真的是好帅哦";
    str=str.substr(5,5);
    console.log(str);    //真的是好帅   第六个数开始,五个数
//substring(开始的索引,结束的索引),返回截取后的字符串,不包含结束的索引的字符串
    var str="哈哈,小苏真的是好帅哦";
    str=str.substring(5,9);
    console.log(str);    //真的是好   (不包括最后一个索引)
 //toLocaleLowerCase();转小写     toLowerCase();转小写
    var str="HELLO";
    //str=str.toLocaleLowerCase();
    str=str.toLowerCase();
    console.log(str);    //hello
//toLocaleUpperCase()转大写      toUpperCase();转大写
    var str="hello";
    str=str.toLocaleUpperCase();
    //str=str.toUpperCase();
    console.log(str);  //HELLO
    //trim();去掉字符串两端的空格    中间的空格去不了
    var str="   哦,这    是一个神奇的一天   ";
    str=str.trim();
    console.log("===="+str+"====");  //====哦,这    是一个神奇的一天====

三、String案例
案例1:

// var key=prompt("请输入您要截取的内容");
    //先获取要截取的字符串的索引的位置
    var index=str.indexOf(key);
    console.log(index);  //5
    //从指定的索引位置开始截取,只需要两个
    str=str.substr(index,2);
    console.log(str);   //向上

案例2:找到这个字符串中所有o出现的位置

 var str3="whot aro you doing?";
    var index=0;  //开始找的位置
    var key="o";  //要找的字符串
    while((index=str3.indexOf(key,index))!=-1){   //如果等于-1,说明找完了    不知道循环次数用while()
        console.log(index);  //2   7   10   14
        index+=key.length;
    }

案例3:找到这个这个字符串中每个字符串出现的次数

 var str4="qbhbdsuwbdHFJHFFDJFJwcbjdscpsacisckwfeyh";
    //第一步:把所有字母都变成小写
    str4=str4.toLocaleLowerCase();
    console.log(str4);
    //第二步:创建一个新的空对象  目的:把字母作为键,次数作为值
    var obj={}
    //第三步:遍历字符串,获取每个字母
    for (var i=0;i<str4.length;i++){
        var key=str4[i];   //得到每个字母
        // console.log(key);
        if(obj[key]){       //判断obj中有没有这个键
            //对象中有这个字母了
            obj[key]++;
        }
        else{
            //对象中没有这个字母,那就把字母加到这个对象中,并且给这个字母一个出现的次数,默认一次
            obj[key]=1;
        }
    }
    //第四步:遍历对象,显示每个字母的出现次数
    for (var key in obj) {
        console.log(key +"这个字母出现了"+obj[key]);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值