Arrays 如何将输入字符串转换为包含该字符串的每个字符的数组-ruby

Arrays 如何将输入字符串转换为包含该字符串的每个字符的数组-ruby,arrays,ruby,string,loops,Arrays,Ruby,String,Loops,嗨,我必须将一个输入到无关方法中的字符串转换成一个数组,其中每个字符都是一个元素。然后我需要遍历这个数组,打印每个奇数字符。我主要是在将这个字符串放入数组时遇到问题,我是用Ruby编写的。任何帮助都会令人惊讶的。谢谢。您可以使用chars获取给定字符串的所有字符的数组,例如: input = "string" input.chars #=> ["s", "t", "r", "i", "n", "g"] 您可以使用每个_char方法,该方法将提供一个枚举数,以便您可以在char上进行迭代

嗨,我必须将一个输入到无关方法中的字符串转换成一个数组,其中每个字符都是一个元素。然后我需要遍历这个数组,打印每个奇数字符。我主要是在将这个字符串放入数组时遇到问题,我是用Ruby编写的。任何帮助都会令人惊讶的。谢谢。

您可以使用chars获取给定字符串的所有字符的数组,例如:

input = "string"

input.chars
#=> ["s", "t", "r", "i", "n", "g"]
您可以使用每个_char方法,该方法将提供一个枚举数,以便您可以在char上进行迭代

value = "Hello, World"
value.each_char { |char| puts char }

要打印每个奇数字符,可以拆分每个字符上的字符串,然后测试索引是否为奇数,如下所示:

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 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

类似input=gets.chomp.SPLIPT的内容请包括一个输入和所需输出的示例。您可以避免在选项2中使用with_index:input_string.each_char.with_index{| char,index | puts char if index.odd?}跟踪索引。