嗨,我必须将一个以不相关方法输入的字符串转换为一个数组,其中每个字符都是一个元素。然后,我需要遍历这个数组,打印每个奇数字符。我主要是在将这个字符串放入数组中时遇到问题,我正在用 Ruby 编写。请提供任何帮助。谢谢。
您可以使用chars
来获取给定字符串的所有字符的数组,例如:
input = "string"
input.chars
#=> ["s", "t", "r", "i", "n", "g"]
要打印每个奇数字符,您可以在每个字符上拆分字符串,然后像这样测试索引是否为奇数:
def unrelated_method(input_string)
input_string.split('').each_with_index do |char, index|
puts char if index.odd?
end
end
另一种选择是遍历每个字符并自己跟踪索引,如下所示:
def unrelated_method(input_string)
index = 0
input_string.each_char do |char|
puts char if index.odd?
index += 1
end
end
当然,你可以把它缩短为:
def unrelated_method(input_string)
input_string.split('').each_with_index { |ca, i| puts ca if i.odd? }
end
这应该可以解决问题:
def print_odd_chars(str)
str.each_char.each_with_index do |char, i|
print char if i.odd?
end
end
您可以使用#each_char
方法,该方法将提供一个枚举器,以便您可以迭代字符。
value = "Hello, World"
value.each_char { |char| puts char }