如何在JavaScript中获取指定字符串中每个字符出现的次数
在本文中,我们给定一个字符串,我们的任务是使用用户定义的函数找到字符串中字符的出现次数。
示例:
输入:"hello"
输出:h 出现 1 次
e 出现 1 次
l 出现 2 次
o 出现 1 次
解释:这里的 "hello" 中有 1 个 h,所以它的值为 1。
同样地,e 有 1 个,l 有 2 个,o 有 1 个。
示例 2:
输入:"did"
输出:d 出现 2 次
i 出现 1 次
方法 1: 在这个方法中,我们使用一个映射数据结构来存储字符出现的次数。
- 首先,我们用字符串的每个字符作为键初始化映射,并将每个字符的值设为 0。
- 我们遍历字符串并增加字符的值。
- 最后,打印映射的键值对。
示例: 这个示例展示了上述方法的使用。
<script>
// 打印字符出现次数的函数
function printans(ans) {
for (let [key ,value] of ans) {
console.log(`{key} 出现{value} 次`);
}
}
// 计算字符出现次数的函数
function count(str, outp_map) {
for (let i = 0; i < str.length; i++) {
let k = outp_map.get(str[i]);
outp_map.set(str[i], k+1);
}
// 调用打印函数
printans(outp_map);
}
// 创建映射来计算字符出现次数的函数
function count_occurs(test, callback) {
// 检查字符串是否为空
if (test.length === 0) {
console.log("空字符串");
return;
} else {
// 用于存储计数值的映射
let ans = new Map();
for (let i = 0; i < test.length; i++) {
ans.set(test[i], 0);
}
callback(test, ans);
}
}
// 测试字符串
let test = "helloworld";
count_occurs(test, count);
</script>
输出:
h 出现 1 次
e 出现 1 次
l 出现 3 次
o 出现 2 次
w 出现 1 次
r 出现 1 次
d 出现 1 次
方法 2: 在这个方法中,我们使用嵌套的循环来遍历字符串并计算每个字符在字符串中出现的次数。
- 首先,为字符串的第 i 个值初始化计数为 0。
- 现在我们遍历字符串,如果第 i 个值与字符相符,则将计数值增加 1。
- 最后,打印计数值。
示例: 这个示例展示了上述方法的使用。
<script>
// 计算字符串中字符出现次数的函数
function count_occur( str )
{
// 判断字符串是否有效
if( str.length == 0 )
{
console.log("无效的字符串")
return;
}
// 循环遍历字符串
for( let i = 0 ;i < str.length ;i++)
{
// 计数变量
let count = 0;
for( let j = 0 ;j < str.length ;j++)
{
if( str[i] == str[j] && i > j )
{
break;
}
if( str[i] == str[j] )
{
count++;
}
}
if( count > 0)
console.log(`{str[i]} 出现{count} 次`);
}
}
// 测试字符串
let test_str = "gfghello";
count_occur( test_str);
</script>
输出结果:
g 出现 2 次
f 出现 1 次
h 出现 1 次
e 出现 1 次
l 出现 2 次
o 出现 1 次
阅读更多:JavaScript 教程
极客教程