gpt4 book ai didi

arrays - Ruby - 将混合字符串转换为数组

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:39 25 4
gpt4 key购买 nike

我正在解决一个问题,我收到了一个字符串形式的“编码”消息,并且必须返回解码后的消息。这需要我将一串混合字符和数字拆分成一个数组。例如,如果我得到这样的字符串:

"0h"

我想把它拆分成这样的数组:

[0, "h"]

但是当我使用 .split 时,我得到了

["0", "h"]

我找到的解决方案只考虑了全是数字的字符串,而不是混合字符串。有没有办法将数字字符串转换为数字,同时保留字符?

最佳答案

您可以使用 String#scan用正则表达式。

str = "0hh1ghi22d"

str.scan(/\d+|\D+/).map { |s| s =~ /\d+/ ? s.to_i : s }
#=> [0, "hh", 1, "ghi", 22, "d"]

str.each_char.map { |s| s =~ /\d/ ? s.to_i : s }
#=> [0, "h", "h", 1, "g", "h", "i", 2, 2, "d"]

视需求而定。

关于arrays - Ruby - 将混合字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39340762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com