Ruby 使用分隔符(最后一个元素除外)连接数组元素
如何将数组元素(手动,不使用或类似方法)与分隔符连接起来,而不在最后一个元素后打印分隔符 示例:Ruby 使用分隔符(最后一个元素除外)连接数组元素,ruby,arrays,Ruby,Arrays,如何将数组元素(手动,不使用或类似方法)与分隔符连接起来,而不在最后一个元素后打印分隔符 示例: names = %w[Benny Punky Jess] for n in names # apply logic end # OUTPUT => "Benny_Punky_Jess" 这是为了学习,与家庭作业无关。首选非语言特定的答案,因为我希望能够在其他地方也应用此逻辑。伪代码: output = ""; DELIMITER = ","; for (i = 0; i < a
names = %w[Benny Punky Jess]
for n in names
# apply logic
end
# OUTPUT => "Benny_Punky_Jess"
这是为了学习,与家庭作业无关。首选非语言特定的答案,因为我希望能够在其他地方也应用此逻辑。伪代码:
output = "";
DELIMITER = ",";
for (i = 0; i < array.length-1; i++) {
output += array[i] + DELIMITER;
}
output += array[array.length-1];
output=”“;
分隔符=“,”;
对于(i=0;i
在ruby中,您可以使用。每个\u都带有\u索引
,并检查索引是否与数组长度相对应,然后不附加分隔符。以下操作即可
names = %w[Benny Punky Jess]
output = ""
for n in names
output = output + n
output = output + '_' unless (n.eql? names[-1])
end
puts output
name=%w[Benny Punky Jess]
输出=“”
名字中的n
如果output.blank?
输出=n
其他的
输出+='\names=%w[Benny Punky Jess]
output=“”
names.each{n |!(n.eql?names[-1])?输出
关键是在没有参数的情况下使用(inject
),因此str
最初是'Benny'
,传递到块的名称的第一个元素是三个答案中的'Punky'
这是我最喜欢的。-1当join
完全符合你的要求时,你为什么不想使用它呢?如果你真的阅读了这个问题,你会发现它是为了学习。我对过程感兴趣,而不是最终结果。如果你发现任何答案都有帮助,请选择最有帮助的答案。Krystah,我已经修改了我的答案回答。
names = %w[Benny Punky Jess]
output = ''
for n in names
if output.blank?
output = n
else
output += '_' << n
end
end
p output
names = %w[Benny Punky Jess]
output = ""
names.each { |n| !(n.eql? names[-1]) ? output << n << '_' : output << n }
puts output
["Benny", "Punky", "Jess"].reduce { |str,s| str + '_' + s }
#=> "Benny_Punky_Jess"