【发布时间】:2019-02-13 01:51:13
【问题描述】:
我正在设计一款纸牌游戏(黑桃)。我想将每只手存储为哈希。
这是一个随机生成的字符串,表示具有 13 张卡片的单个拥有,其中 10c 是键,10 是值
"10c 10 bj 18 2s 15 3s 3 8d 8 as 14 kh 13 8c 8 3c 3 6d 6 kc 13 5d 5 ad 14"
我想将10c 和10 之间的空格' ' 替换为=>,并将10 和bj 之间的以下空格替换为逗号...这应该看起来像10c=>10,bj=>18等等。
从那里我将通过调用 Hash#inspect; 将其转换为哈希;但是,我还没有找到使用 gsub 替换字符串的第 n 个字符的方法。
我试过调用hand.gsub(' ', '=>'),但这显然会用=>替换空间的每个实例
【问题讨论】:
-
str.split.each_slice(2).to_h -
这个也可以。
-
您的目标是创建一个哈希。一种方法是一步使用正则表达式(尽管我不知道
gsub如何适合它)。然而,这不是唯一的方法,而且在我看来,这也不是最好的方法。通过按你的方式提出问题,你不必要地限制了可以使用的方法。这有时被称为XY problem。 -
@sawa 如何使用 gsub 替换字符串的第 n 个字符?
-
@kel.o 这个原始请求的答案是
s.gsub(/([^ ]* [^ ]*) /, '\1,').gsub(' ', '=>')。