1.4 字符串操作
字符串:“abaasdffggghhjjkkgfddsssss3444343”,问题如下:
1、 字符串的长度
2、 取出指定位置的字符,如:0,3,5,9等
3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等
4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法
5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
6、 找出以上字符串中出现次数最多的字符和出现的次数
7、 遍历字符串,并将遍历出的字符两头添加符号“@”
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
1.4 字符串操作
字符串:“abaasdffggghhjjkkgfddsssss3444343”,问题如下:
1、 字符串的长度
2、 取出指定位置的字符,如:0,3,5,9等
3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等
4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法
5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
6、 找出以上字符串中出现次数最多的字符和出现的次数
7、 遍历字符串,并将遍历出的字符两头添加符号“@”
<script>
var str = "abaasdffggghhjjkkgfddsssss3444343"
console.log("abasdffggghhjjkkgfddsssss3444343")
//1、 字符串的长度
function getLength(arr) {
console.log("1、 字符串的长度")
var len = arr.length
console.log(len)
return len
}
getLength(str)
//2、 取出指定位置的字符,如:0,3,5,9等
function getByIndex(index, arr) {
console.log("2、 取出指定位置的字符,如:0,3,5,9等")
var ch = arr.charAt(index)
console.log(ch)
return ch
}
getByIndex(3, str)
//3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等
function existStr(ch, str) {
console.log("3、 查找指定字符是否在以上字符串中存在,如:i,c ,b等")
var flag = str.indexOf(ch)
console.log("若为-1意为不存在")
console.log("开始下标:")
console.log(flag)
return flag
}
existStr("66", str)
// 4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法
function change(before, after, str) {
console.log("4、 替换指定的字符,如:g替换为22,ss替换为b等操作方法")
var index = str.indexOf(before)//获取想要替换的字符的下标
console.log(index)
console.log(after)
var len = before.length
if (index != -1) {
//sreplace()⽅法
// 1 字符串.replace(被替换的字符串, 要替换为的字符串);
str = str.replace(before, after)//ji将替换后的结果赋值给str
console.log(str)
} else {
console.log("x想要替换的字符不存在")
}
return str
}
str = change("344", "666", str)
// 5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
function getStrByIndex(start, end, str) {
console.log("5、 截取指定开始位置到结束位置的字符串,如:取得1-5的字符串")
var newStr = str.slice(start, end)
console.log(newStr)
return newStr
}
getStrByIndex(0, 5, str)
// 6、 找出以上字符串中出现次数最多的字符和出现的次数
function maxTimes(str) {
{
console.log(str)
console.log("6、 找出以上字符串中出现次数最多的字符和出现的次数")
var arr=[] //用来存储每个数出现的次数
var num=0
for (var j=0;j<str.length;j++){
arr[j]=0
var newStr='' //x新字符串
var newStrFirst=str.slice(0,j+1) //新字符串前半段
var newStrBefore=str.slice(j+1,str.length) //新字符串前半段
var newStrAfter='' //新字符串后半段
for (var i = 0; i < str.length; i++) {
num++
//slice(start,end) 从start位置开始,到end位置结束,
// 取不到end,他们都是索引号
newStrBefore=str.slice(j+1,str.length)
// console.log("新字符串前半段"+newStrFirst)
// console.log("新字符串后半段"+newStrBefore)
var ch=str.charAt(j)
// console.log("当前字符"+ch)
//replace()方法用于在字符串中替换字符
//str.replace(被替换的字符串,替换后字符串)
newStrAfter = newStrBefore.replace(ch, "")
if (newStrBefore != newStrAfter) {
//如果后半段修改前和修改后不一样,则替换新字符串
newStr=newStrFirst+newStrAfter
// console.log("新字符串"+newStr)
// console.log("新字符串长度"+newStr.length)
str = newStr
// console.log("删除后"+str)
i--
arr[j]++
} else {
console.log(str)
}
}
}
console.log(arr)
// [2, 0, 5, 2, 2, 3, 1, 1, 1, 2, 1, 1]
console.log("总共运行次数:"+num)
// 总共运行次数:264
var max=arr[0]
var index=0
for (var i=0;i<str.length;i++){
if (max<arr[i]){
max=arr[i]
index=i
}
}
console.log("出现次数最多为:"+max)
// 出现次数最多为:5
console.log("去重后的字符串:"+str)
// 去重后的字符串:absdfghjk643
console.log("他在去重后的字符串中的下标:"+index)
// 他在去重后的字符串中的下标:2
console.log("该字符是:"+str.charAt(index))
// 该字符是:s
}
}
maxTimes(str)
console.log(str) //abaasdffggghhjjkkgfddsssss6664343
// 7、 遍历字符串,并将遍历出的字符两头添加符号“@”
console.log(" 7、 遍历字符串,并将遍历出的字符两头添加符号“@”")
function addChar(str,ch){
console.log("遍历前字符串:"+str)
var newStr=''+ch
for (var i=0;i<str.length;i++){
newStr=newStr+str.charAt(i)+ch
}
console.log("遍历后字符串:"+newStr)
//@a@b@a@a@s@d@f@f@g@g@g@h@h@j@j@k@k@g@f@d@d@s@s@s@s@s@6@6@6@4@3@4@3@
}
addChar(str,'@')
</script>
</body>
</html>