Project1

标题: 字符串处理请教 [打印本页]

作者: 阮声悠悠    时间: 2018-4-23 14:53
标题: 字符串处理请教
论坛搜遍了这是10年的一个贴,https://rpg.blue/forum.php?mod=v ... 7%E7%AC%A6%E4%B8%B2
但与我想实现的效果有点不一致

是这样的
我有一段代码
daima = “  aBcD1ef1g”
我想删除daima指定的字符串的空格符
并想把a变成1,B或b变成2...这样的
应该不难,各位大大能帮帮忙吗
作者: guoxiaomi    时间: 2018-4-23 16:18
本帖最后由 guoxiaomi 于 2018-4-23 18:05 编辑

用gsub,写一个for循环
RUBY 代码复制
  1. replace_format = {/\s/ => '', /[Aa]/ => '1', /[Bb]/ => '2'}
  2. string = 'A2b31C3'
  3. for reg, s in replace_format do
  4.   string.gsub!(reg, s)
  5. end


作者: 正太君    时间: 2018-4-23 17:11
写起来很简单,但是如果出现了z变成多少?26吗?

作者: 失落的乐章    时间: 2018-4-23 19:05
本帖最后由 失落的乐章 于 2018-4-24 20:01 编辑
guoxiaomi 发表于 2018-4-23 16:18
用gsub,写一个for循环
replace_format = {/\s/ => '', /[Aa]/ => '1', // => '2'}
string = 'A2b31C3'


我想出了一种不用转换表的方法(利用 ASCII 码):
  1. p "a1 B2 c3 D4...Z26".gsub(/\s/, '').downcase.gsub(/[a-z]/) { |s| s[0] - 96 }
  2. #=> '11223344...2626'
复制代码

不过还没在 XP 里测试过。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1