字符串常见的算法
字符串的常用的函数 :
- split 指定的分隔符字符串将一个
String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置
字符串逆序输入
第一种实现方式
代码实现
var s = 'abcdef';
function reverseString(str) {
// console.log(str.split(""))
// console.log(str.split("").reverse())
return str.split("").reverse().join("");
}
console.log(reverseString(s))
结果
第二种实现方式
代码实现
var arr = Array.from(s)
console.log(arr.reverse().join(""));
结果
fedcba
第三种实现方式
代码实现
function reverseString2(str) {
var result = "";
for (let i = str.length - 1; i >= 0; i--) {
result += str.charAt(i);
}
return result;
}
console.log(reverseString2(s))
charAt() 方法从一个字符串中返回指定的字符。语法:str.charAt(index)
统计字符串中出现次数最多的字符及出现的次数
function getMaxCount(str) {
var json = {}; //表示key-value结构的对象
//遍历str的每一个字符得到key-value形式的对象
for (var i = 0; i < str.length; i++) {
//判断json对象中是否有当前从str字符串中取出来的某个字符。
if (!json[str.charAt(i)]) {
//如果不存在,把当前字符作为key添加到json对象中,值为1
json[str.charAt(i)] = 1;
} else {
//如果存在,则让value值加1
json[str.charAt(i)]++;
}
}
//存储出现次数最多的字符
var maxCountChar = "";
//存储出现最多的次数
var maxCount = 0;
//遍历json对象,找出出现次数最大的值
for (var key in json) {
if (json[key] > maxCount) {
maxCount = json[key];
maxCountChar = key;
}
}
return (
"出现最多的字符是" + maxCountChar + ",共出现了" + maxCount + "次"\
);
}
ar str = "javascriptjavaabc";
console.log(getMaxCount(str));
去除字符串中重复的字符
方法一
function removeStringChar(str) {
//结果数组
var result = [];
//key-value形式的对象
var json = {};
for (var i = 0; i < str.length; i++) {
//当前处理的字符
var char = str[i];
//判断是否在对象中
if (!json[char]) {
//将value值设置为true
json[char] = true;
//添加到结果数组中
result.push(char);
}
}
return result.join("");
}
var str = "javascriptjavaabc";
console.log(removeStringChar(str));
方法二
const set = new Set([1,2,3,4,4,]);
//console.log(set) // Set(4) {1, 2, 3, 4}
[...set] // [1, 2, 3, 4] 通过扩展运算符将set中的内容转换成数组,同时可以看到已经去重。
判断一个字符串是否为回文字符串
function isEequStr(str) {
//空字符串则直接返回true
if (!str.length) {
return true;
}
//统一转换成小写,同时再将其转换成数组
str = str.toLowerCase().split("");
var start = 0,
end = str.length - 1;
//通过while循环,判断正序和倒序的字母
while (start < end) {
// 如果相等则更改比较的索引
if (str[start] === str[end]) {
start++;
end--;
} else {
return false;
}
}
return true;
}
var str = "abcdcba";