//查找字符串中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);