You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现:为末尾含重音字母的单词添加单引号

解决字符串中末尾为重音字母的单词添加单引号的问题

原代码存在的问题

  • 执行split(' ')后立刻join(' '),没有对单个单词做处理,相当于直接使用原字符串,完全浪费了分割数组的操作
  • 循环仅判断整个字符串的最后一个字符,无法独立处理每个单词的末尾字符
  • 判断条件中混用stringa3[i]和stringa[i],逻辑混乱,且未针对每个单词的末尾字符做校验
  • 循环内每次都打印结果,会输出大量重复的无效内容

正确实现方案

我们需要逐个处理每个单词,检查其末尾字符是否为重音字母,再决定是否添加单引号:

// 目标字符串
const stringa = "nicolò à test è caffé";
// 存储所有需要匹配的重音字母,方便快速校验
const accentedChars = new Set(["ò", "è", "à", "ì", "é", "ù", "ú", "í", "á", "ó"]);

// 分割字符串为单词数组,逐个处理
const processedWords = stringa.split(' ').map(word => {
    // 获取单词的最后一个字符(兼容性不足时可替换为word[word.length - 1])
    const lastChar = word.at(-1);
    // 末尾是重音字母则加单引号,否则保持原单词
    return accentedChars.has(lastChar) ? `${word}'` : word;
});

// 拼接回完整字符串并输出
const result = processedWords.join(' ');
console.log(result); // 输出:nicolò' à' test è' caffé'

代码说明

  • split(' ')将字符串拆分为独立单词的数组,便于逐个处理
  • map遍历数组,对每个单词做末尾字符校验
  • 使用Set存储重音字母,has方法能高效判断字符是否在目标集合内
  • 处理完成后用join(' ')重新拼接为完整字符串

示例验证

输入:Niccòlò Niccòlò
输出:Niccòlò' Niccòlò',完全符合需求要求

内容的提问来源于stack exchange,提问作者Lorenzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:05:46