原生JS内置对象的字符串操作习题

(一)获取字符串长度


console.log(str.length);   // 33
 

 

(二)取出指定位置的字符,如:0,3,5,9等


console.log(str[0], str[3], str[5], str[9]);   // a a d g
 

 

(三)查找指定字符是否在以上字符串中存在,如:i,c ,b等


console.log(str.indexOf('i'), str.indexOf('c'), str.indexOf('b'));    // -1 -1 1
 

 

(四)替换指定的字符,如:g替换为22,ss替换为b等操作方法


/* js高级写法"/ /g"正则表达式,g为全局搜索 */
console.log(str.replace(/g/g, '22'));  // abaasdff222222hhjjkk22fddsssss3444343
console.log(str.replace(/ss/g, 'b'));  // abaasdffggghhjjkkgfddbbs3444343

 

(五)截取指定开始位置到结束位置的字符串,如:取得1-5的字符串


console.log(str.substr(0, 5));   // abaas
 

 

(六)找出字符串中出现次数最多的字符和出现最多的次数

var newArr = {};
for (var i = 0; i < str.length; i++) {
    var char = str.charAt(i); // charAt()返回索引对象字符
    if (newArr[char]) {
        newArr[char]++; // 次数加1,"object[key] = 1 "为每个遍历的对象属性赋值
    } else {
        newArr[char] = 1; // 若第一次出现,次数记为1
    }
}
console.log(newArr); // 输出完整的对象,记录每个字符及其出现次数

var max = 0; // 第一次for循环找出现最多次数
for (var key in newArr) { // key是属性即字符串,newArr是对象,newArr[key]为属性值
    if (max < newArr[key]) {
        max = newArr[key]; //max始终储存次数最大的那个
    }
}
for (var key in newArr) { // 第二次for循环找出现最多次数对应的字符
    if (newArr[key] == max) {
        console.log("最多的字符是" + key + '\t' + "出现的次数是" + max);
    }
}

 

(七)遍历出的字符两头添加符号“@”

var strArr = str.split(''); // 将字符串分割成字符串数组方法
var newStr = [];
for (var i = 0; i < strArr.length; i++) { // 遍历
    var newChar = '@' + strArr[i] + '@';
    newStr += newChar; // 将newChar一个个字符串相连
}
console.log(newStr);

 

 

posted @ 2020-10-07 22:43  MaricoCheung  阅读(525)  评论(0编辑  收藏  举报