有一行:ggSuQNs6TxOTuQDd0j+4sA==$QO/Mq2jwfe3jgsGGoIGmlg==
。我需要
将其转换为ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg
(仅限字母和数字)。然后将其修剪为13个字符ggSuQNs6TxOTu
并在3个符号后面粘贴数字的前半部分数字,粘贴在9个符号后半部分数字的数字之后。例如,考试编号为3243
,字符串为ggSuQNs6TxOTu
。在有ggS32uQNs436TxOTu
我的英语很差),我希望你能理解我。
答案 0 :(得分:0)
这是我的尝试,因为我可以从你的问题中理解(让我完成你的每个句子)。
你的字符串:
s = "ggSuQNs6TxOTuQDd0j+4sA==$QO/Mq2jwfe3jgsGGoIGmlg=="
<强>步骤1 强>
我需要将其转换为 “ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg”(只有字母和 号码)。
仅限字符和数字:
> transform_string = s.tr('^A-Za-z0-9', '')
#=> "ggSuQNs6TxOTuQDd0j4sAQOMq2jwfe3jgsGGoIGmlg"
第2步
然后将其修剪为13个字符“ggSuQNs6TxOTu”
以这种方式获取前13个字符:
> thirteen_chrs = transform_string[0..12]
#=> "ggSuQNs6TxOTu"
第3步(来自您的示例)
number = 3242
<强>步骤4 强>
后3个字符的前半位数,9后粘贴 字符的后半部分数字。
这里是相同的内联代码:
> thirteen_chrs.insert(3, number.to_s.chars.each_slice(2).map(&:join).first).insert(9, number.to_s.chars.each_slice(2).map(&:join).last)
#=> "ggS3232uQ42Ns6TxOTu"
我希望这可以帮助你:)