`+':无法将String转换为Array(TypeError)

时间:2015-02-06 11:21:38

标签: ruby

嗨,我收到错误

  

`+':无法将String转换为Array(TypeError)

文件中的数据用TAB分隔。

文件中的数据是:

Hi! Welcome to
Hi! Welcome to  google
Hi! Welcome to  google  Technologies
Hi! Welcome to  google  Technologies    Hyderabad 
Hi! Welcome to  google  Technologies    Hyderabad   Telengana
Hi! Welcome to  google  Technologies    Hyderabad   Telengana   India 

read_file=File.open('C:/Users/x/1234567.txt', 'r+')
     read_file.each do |x| 
       #puts x.length   
       array_list=x.split(/\t/)
       #print array_list.length
       case array_list.length
         when 3,4
         puts "hi"
         when 5
         print array_list[0..3]
         when 6
         print array_list[0..3]
         print array_list[0..2] + array_list[4]
         when 7
         print array_list[0..3]
         print array_list[0..2] + array_list[4]
         print array_list[0..2] + array_list[5]
         when 8
         print array_list[0..3]
         print array_list[0..2] + array_list[4]
         print array_list[0..2] + array_list[5]
         print array_list[0..2] + array_list[6]
         else
           puts "Happy"
        end
    end

1 个答案:

答案 0 :(得分:4)

Array#+连接两个数组:

array + other_array

但你正在尝试连接一个字符串:

array_list[0..2] + array_list[4]

这是因为array_list[4]会返回单个元素。

您可以使用values_at一次获取多个索引(或索引范围):

array_list.values_at(0..2, 4)