使用除最后一个元素之外的分隔符连接数组元素

时间:2014-07-08 07:43:43

标签: ruby arrays

如何在不使用最后一个元素后打印分隔符的情况下,使用分隔符连接数组元素(手动,不使用Array#join或类似方法)?

示例:

names = %w[Benny Punky Jess]

for n in names
  # apply logic
end

# OUTPUT => "Benny_Punky_Jess"

这是为了学习而与家庭作业无关。首选非语言特定答案,因为我希望能够在其他地方应用此逻辑。

5 个答案:

答案 0 :(得分:3)

names = %w[Benny Punky Jess]
output = ''
for n in names
  if output.blank?
    output = n
  else
    output += '_' << n
  end
end
p output

答案 1 :(得分:2)

伪代码:

output = "";
DELIMITER = ",";
for (i = 0; i < array.length-1; i++) {
 output += array[i] + DELIMITER; 
}
output += array[array.length-1];

在ruby中,您可以使用.each_with_index并检查索引是否对应于数组长度,然后不附加分隔符。

答案 2 :(得分:2)

以下将做,

names = %w[Benny Punky Jess]
output = ""
for n in names
   output = output + n
   output = output + '_' unless (n.eql? names[-1])
end
puts output

答案 3 :(得分:1)

names = %w[Benny Punky Jess]
output = ""
names.each { |n| !(n.eql? names[-1]) ? output << n << '_' : output << n }
puts output

答案 4 :(得分:0)

我这样做:

names = %w[Benny Punky Jess]

puts names.each_with_object('') { |s,str| str << s << '_' }[0..-2]
Benny_Punky_Jess

可替换地:

puts names.reduce('') { |str,s| str + s + '_' }[0..-2]
Benny_Punky_Jess