对字符串的简易操作

//查找字符串中a出现的位置以及次数
1 var str = "abcdabcdabcdabcd";
2   var index = str.indexOf('a');//查找第一个a的索引值
3   var num = 0;
4   while (index !== -1){
5     console.log(index);
6     num++;
7     index = str.indexOf('a',index+1);//查找下一个a的索引值 //4 8 12
8   }
9   console.log("a出现的次数是"+num);

 


//////查找位置上的字符
/* var str1 = "wang";
console.log(str1.charAt(1));// a 返回索引值为1的字符
console.log(str1.charCodeAt(1));//97 返回索引值为1的字符的ASCll码值*/
 
//查找对象中是否有出现所查的东西
1 var o={
2     age:18,
3     sex:1
4   }
5   if (o['age']){
6     console.log("有这个属性");
7   }else {
8     console.log("没有这个属性");
9   }

 


//查找字符串 afsaaufgoiruhgnalkbl中出现次数最多的字符
//思路 把字符串放到对象里面 利用 o[]查找出现的次数
var str = "afsaaufgoiruhgnalkbl";
  var o = {};
  for (i = 0;i <= str.length;i++){
    var chars = str.charAt(i);//把每一个字符都遍历一遍,把字符串存进对象o里面
    if (o[chars]){  //如果已经存在的了,就次数加1
        o[chars]++;
    }else {
      o[chars] = 1;//这个操作是把遍历过的字母都存进o中
    }
  }
  console.log(o);
//到这一步 所有的字母都存进对象o里面了 并已经把每个字符出现的次数打印出来了
  //接下来找出出现次数最多的字符 相当于找最大值
 /* 当前的var o 中的对象如下
 {
      a:4;
      b:3
      c:2
      j:3
      .....
  }*/
//利用for in 找出出现最多的次数和名字
  var max = 0;
  var ch = '';
  for(var k in o){ // 遍历对象
      //k得到的是属性名
      //o[k]得到的是属性值
      if(o[k]>max){
          max = o[k];//获得最多次数
          ch = k; //获得字符名
      }
  }
  console.log("出现次数最多的是:"+ch);
  console.log("出现了"+max+"次");

 


//截取字符串
var str = "十步杀一人千里不留行";
console.log(str.substr(2,3));//2是截取的起始索引值,3是截取的字符个数 结果是’杀一人‘
console.log(str.substring(2,6));//2是起始的索引值,6是结束的索引值 第6个取不到 结果是’杀一人千‘
 
//替换字符串
var str1 = "abcd"
console.log(str1.replace('a','b'));//把a替换成b; 结果是bbcd
var str2 = "aosihfaghaklsnadf";
while (str2.indexOf('a') !== -1){
str2 = str2.replace('a','*');
}
console.log(str2);


//数组和字符串之间的相互转换

//split 把字符串转换为数组 可以自己决定分隔符,如逗号 也可以是以某个字母为分隔符
var str3 = "a,b,c,d,f";
console.log(str3); //结果是'a,b,c,d,f',返回的是字符串
var arr = str3.split(',');
console.log(arr);//结果是【a,b,c,d,f】,返回的是数组


//join 把数组转换为字符串
var arr1 = [1,2,3,4,5];
console.log(arr1);//结果是【1,2,3,4,5】,返回的是数组
var str4 = arr1.join('?');//在每个元素间加个?,以字符串的形式输出 得到的是1?2?3?4?5
console.log(str4);

实操案例
//1,求字符串的长度
var str = "abaasdffggghhjjkkgfddsssss3444343";
  
  console.log(str.length);//33
//2,去除指定位置的字符,如:0,3,5,9

var str = "abaasdffggghhjjkkgfddsssss3444343";

console.log(str.charAt(0));//a console.log(str.charAt(3));//a console.log(str.charAt(5));//d console.log(str.charAt(9));//g
//3,查找指定字符是否在以上字符串中存在,如:i,c,b


var str = "abaasdffggghhjjkkgfddsssss3444343";

var num = str.indexOf('i'); if (num !== -1){ console.log("i在字符串中存在"); }else { console.log("i在字符串中不存在"); }//i在字符串中不存在,其他的字母类似方法

//4,把g替换成22,s替换成b

var str = "abaasdffggghhjjkkgfddsssss3444343";

while (str.indexOf('g') !== -1){ str = str.replace('g','22'); } console.log(str); while (str.indexOf('s') !== -1){ str = str.replace('s','b'); } console.log(str);
//5,截取索引1-5的字符串
var str = "abaasdffggghhjjkkgfddsssss3444343";
console.log(str.substring(1,5));
//6,找出以上字符串中出现次数最多的字符和出现的次数

var str = "abaasdffggghhjjkkgfddsssss3444343";
var o = {};
  for(i=0;i<=str.length;i++){
    var chars = str.charAt(i);//把所有的字符都存到对象里面
    if (o[chars]){
      o[chars]++;
    }else {
      o[chars] = 1;
    }
  }
  console.log(o);

var max = 0;
var ch = '';
for(var k in o){
if(o[k]>max){
max = o[k];
ch = k;
}
}
console.log("出现最多的字符是:"+ch);
console.log("出现最多的字符次数是"+max);
 

 



posted @ 2022-02-22 19:03  椿c  阅读(66)  评论(0)    收藏  举报