如何在不使用最后一个元素后打印分隔符的情况下,使用分隔符连接数组元素(手动,不使用Array#join或类似方法)?
示例:
names = %w[Benny Punky Jess]
for n in names
# apply logic
end
# OUTPUT => "Benny_Punky_Jess"
这是为了学习而与家庭作业无关。首选非语言特定答案,因为我希望能够在其他地方应用此逻辑。
答案 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