查看: 2997|回复: 3

[已经解决] 字符串处理请教

[复制链接]
梦石
0
星屑
4017
在线时间
604 小时
注册时间
2017-4-21
回帖
177
发表于 2018-4-23 14:53:04 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
论坛搜遍了这是10年的一个贴,https://rpg.blue/forum.php?mod=v ... 7%E7%AC%A6%E4%B8%B2
但与我想实现的效果有点不一致

是这样的
我有一段代码
daima = “  aBcD1ef1g”
我想删除daima指定的字符串的空格符
并想把a变成1,B或b变成2...这样的
应该不难,各位大大能帮帮忙吗
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2018-4-23 16:18:04 | 显示全部楼层
本帖最后由 guoxiaomi 于 2018-4-23 18:05 编辑

用gsub,写一个for循环
[pre lang="ruby"]replace_format = {/\s/ => '', /[Aa]/ => '1', /[Bb]/ => '2'}
string = 'A2b31C3'
for reg, s in replace_format do
  string.gsub!(reg, s)
end[/pre]
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2018-4-23 17:11:48 | 显示全部楼层
写起来很简单,但是如果出现了z变成多少?26吗?
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

梦石
0
星屑
3069
在线时间
1054 小时
注册时间
2011-8-16
回帖
223
发表于 2018-4-23 19:05:55 | 显示全部楼层
本帖最后由 失落的乐章 于 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 里测试过。

评分

参与人数 3星屑 +60 赞 +2 收起 理由
RyanBern + 60 认可答案
chd114 + 1 我很赞同
guoxiaomi + 1 应该可行

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部