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

Ruby如何遍历数组内每个字符串并移除单个字符串内重复字符

数组内单个字符串内部字符去重实现方案

你之前的写法存在两处问题:

  • array.uniq 作用是对数组整体的完整字符串元素做去重,不会处理字符串内部的字符
  • array.each.uniq 语法逻辑不成立:each 遍历仅返回原数组,没有传递字符串元素给后续的uniq处理,也无法操作字符串内部内容

实现方法(Ruby环境)

核心逻辑:遍历数组每一个字符串,将字符串拆分为字符数组后做去重,再拼接回新的字符串。

示例代码

输入数组:

array = ["abc", "abc", "xxzzyyww", "aaaaa"]

返回新数组(不修改原数组):

result = array.map { |str| str.chars.uniq.join }

原地修改原数组:

array.map! { |str| str.chars.uniq.join }

输出验证

执行后得到的结果和预期完全一致:

["abc", "abc", "xzyw", "a"]

代码逻辑说明

  • map 遍历原数组的每一个字符串元素,将每个元素传入块处理后,返回处理完成的新数组
  • str.chars 将单个字符串拆分为由单字符组成的数组,例如 "xxzzyyww" 会被拆分为 ["x","x","z","z","y","y","w","w"]
  • uniq 对单字符数组做去重,按字符首次出现的顺序保留唯一值
  • join 将去重后的单字符数组拼接回字符串格式

内容的提问来源于stack exchange,提问作者Vini Lourenço

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:12:04