js中String(字符串)对象

目录

常用String对象方法 :

案例练习 :

1.查找字符是否存在,替换字符,截取字符,统计出现次数最多的字符以及出现次数

2. 去除字符串中的重复字符

3.编写函数翻转字符串(方法和翻转数组一样)


常用String对象方法 :

length 属性返回字符串的长度

var txt = "ABCDEF";
var sln = txt.length;

 indexOf() 方法返回字符串中指定文本首次出现的索引(索引号以0开始),查找的字符串不存在时返回值 -1

var str = "Countless meet, waiting for the end";
var ch = str.indexOf("t");
var pos = str.indexOf("meet"); // 查找一串字符时返回首个字符索引

ch = str.indexOf("x"); // 当查找的字符不存在时返回值为 -1

ch = str.indexOf("t",5); // 第二个参数为查询的起始索引(从第几位开始查询)

三种提取部分字符串的方法:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

slicesubstring都是截取从start开始到end结束的字符串,且不包括end索引的字符。个人substr使用的最多,从start(开始索引)截取length(字符串长度)。

var str = "Apple,Banana,Orange";
var res = str.substr(6,6); // res结果是Banana

//如果只写一个参数,从索引号开始截取剩余字符串
res = str.substr(6); //结果是 Banana,Orange

replace() 方法用另一个值替换在字符串中指定的值,replace() 默认只替换首个匹配(注意/……/g,i 中的字符串不要引号

var str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

str = "Please visit Microsoft and Microsoft!";
n = str.replace(/Microsoft/g, "W3School"); // /……/g 全局匹配

str = "Please visit Microsoft!";
n = str.replace(/MICROSOFT/i, "W3School"); // /……/i 不区分大小写匹配

concat() 连接两个或多个字符串(和加运算符效果一样)

var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ",text2);

trim() 方法删除字符串两端的空白符

var str = "       Hello World!        ";
alert(str.trim());

charAt() 方法返回字符串中指定下标(位置)的字符串

var str = "HELLO WORLD";
str.charAt(0);   // 返回 H

// charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码
str = "HELLO WORLD";
str.charCodeAt(0); 

split() 方法将字符串转换为数组

var txt = "a,b,c,d,e";   // 字符串
txt.split(",");          // 用逗号分隔 ["a","b","c","d","e"]

txt.split(); //将整个字符串作为一位数组 ["a,b,c,d,e"] length为1

txt.split(""); //以空字符分割,每一个字符都将成为数组中的一位元素 
 // 结果是['a', ',', 'b', ',', 'c', ',', 'd', ',', 'e']

案例练习 :

1.查找字符是否存在,替换字符,截取字符,统计出现次数最多的字符以及出现次数

        var str = 'abaasdffggghhjjkkgfddsssss3444343';
        var len = str.length;   //字符串的长度

        // 取出指定位置字符 0,3,5,9
        document.write(str.charAt(0));
        document.write(str.charAt(3)) ;
        document.write(str.charAt(5)) ;
        document.write(str.charAt(9)) ;

        // 将str字符串中每个字符转为对象o中的属性
        var o = {};
        for(var i = 0; i < str.length; i++){
            var chars = str.charAt(i);
            if(o[chars]){
                o[chars]++;
            } else {
                o[chars] = 1;
            }
        }
        console.log(o);

        // 查找指定字符是否在以上字符串中存在,(i,c,b)
        if(o['i']) alert('存在字符i'); else alert('不存在字符i');
        if(o['c']) alert('存在字符c'); else alert('不存在字符c');
        if(o['b']) alert('存在字符b'); else alert('不存在字符b');

        // 替换字符串:g替换为22,ss替换为b
        var newStr = str.replace('g','22');
        while(newStr.indexOf('g') != -1 || newStr.indexOf('ss') != -1){
            newStr = newStr.replace('g','22');
            newStr = newStr.replace('ss','b');
        }
        console.log(newStr);

        // 截取指定位置的字符串,1-5的字符串
        console.log(str.substr(1,5));

        // 找出出现次数最多的字符
        var max = 0;
        var ch = '';
        for(var k in o) {
            if(max < o[k]) {
                max = o[k];
                ch = k;
            }
        }
        
        console.log(ch+'出现次数最多共'+max+'次');

2. 去除字符串中的重复字符

var str = "abcdeereeryhhssqqq";
        function unique(str) {
            var newStr = '';
            for(var i = 0; i < str.length; i++) {
                if(newStr.indexOf(str.charAt(i)) == -1){
                    newStr = newStr.concat(str.charAt(i));
                    //也可以用 += 运算符
                    // newStr[newStr.length] = str.charAt(i); 此方法错误
                }
            }
            return newStr;
        }
        console.log(unique(str));

3.编写函数翻转字符串(方法和翻转数组一样)

function reStr(str) {
            var newStr = '';
            for(var i = str.length-1; i >= 0; i--) {
                newStr = newStr.concat(str.charAt(i));
            }
            return newStr;
        }
        var str = '我为人人';
        console.log(reStr(str));

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值