gpt4 book ai didi

Ruby 内置方法获取字母表系列中字母的位置?

转载 作者:行者123 更新时间:2023-12-05 08:17:09 25 4
gpt4 key购买 nike

输入:str = "stackoverflow"

输出:[19 20 1 3 11 15 22 5 18 6 12 15 23]

我们有什么方法可以获取 ruby​​ 中字母的位置吗?

这样我就可以使用类似str.chars.map { |al| al.some_method .

str.chars = ["s", "t", "a", "c", "k", "o", "v", "e", "r", "f", "l", "o", "w"]

最佳答案

你可以做到这一点。我会使用 String#chars 返回字符串中每个字符的 ASCII 码。

'abcdggg'.bytes
# => [97, 98, 99, 100, 103, 103, 103]

如您所见,字母表是连续的,每个字母都比前一个字母大。您可以通过从数字中取出 96 来获得它在字母表中的位置。

请注意,大写字母的位置不同,但我们可以使用 String#downcase 解决此问题。

要获取字符串中的所有字母位置(如果它只有字母),我们可以编写此方法。

def alphabet_positions(string)
string.downcase.bytes.map{|b| b - 96}
end

如果任何字符不是字母,这将出乎意料地工作。

关于Ruby 内置方法获取字母表系列中字母的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54325920/

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