回答編集履歴

6 誤字

katoy

katoy score 19109

2017/02/19 11:20  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby
irb(main):007:0> ary0.zip([' '] * ary0.size, ary1, ['個, '] * (ary0.size - 1) << '個。').join
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby
irb(main):007:0> ((["%s %d個, "] * (ary0.size - 1)) + ['%s %d個。']).zip(ary0.zip(ary1)).inject('') {|s, v| s += v[0] % v[1]}
irb(main):008:0> ((["%s %d個, "] * (ary0.size - 1)) + ['%s %d個。']).zip(ary0.zip(ary1)).inject('') {|s, v| s += v[0] % v[1]}
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
5 追記

katoy

katoy score 19109

2017/02/19 11:19  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby
irb(main):007:0> ary0.zip([' '] * ary0.size, ary1, ['個, '] * (ary0.size - 1) << '個。').join
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby  
irb(main):007:0> ((["%s %d個, "] * (ary0.size - 1)) + ['%s %d個。']).zip(ary0.zip(ary1)).inject('') {|s, v| s += v[0] % v[1]}  
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"  
```  
 
4 追記

katoy

katoy score 19109

2017/02/19 10:29  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby  
irb(main):007:0> ary0.zip([' '] * ary0.size, ary1, ['個, '] * (ary0.size - 1) << '個。').join  
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"  
```  
3 削除

katoy

katoy score 19109

2017/02/19 10:22  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby  
irb(main):007:0> "#{ary0.zip(ary1, [' 個, '] * ary0.size).flatten.join}".sub(/, \z/, '。')  
=> "とんかつ定食1 個, ラーメン3 個, チャーハン0 個, サラダ2 個。"  
```  
2 追記

katoy

katoy score 19109

2017/02/19 10:19  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```
```ruby  
irb(main):007:0> "#{ary0.zip(ary1, [' 個, '] * ary0.size).flatten.join}".sub(/, \z/, '。')  
=> "とんかつ定食1 個, ラーメン3 個, チャーハン0 個, サラダ2 個。"  
```  
 
1 追記

katoy

katoy score 19109

2017/02/19 09:12  投稿

他の例も考えてみました。
```ruby
$ irb
irb(main):001:0> ary0 = ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
=> ["とんかつ定食", "ラーメン", "チャーハン", "サラダ"]
irb(main):002:0> ary1 = [1, 3, 0, 2]
=> [1, 3, 0, 2]
irb(main):003:0> puts "#{ary0.zip(ary1).map {|x, y| "#{x} #{y}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):004:0> puts "#{ary0.map.with_index{|x, idx| "#{x} #{ary1[idx]}個"}.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
irb(main):005:0> puts "#{Array.new(ary0.size) {|idx| "#{ary0[idx]} #{ary1[idx]}個" }.join(', ')}。"
とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。
=> nil
```
```
追加 2017-02-19
```ruby
irb(main):006:0> "#{("%s %d個, " * ary0.size)[0..-3]}。" % (ary0.zip(ary1).flatten)
=> "とんかつ定食 1個, ラーメン 3個, チャーハン 0個, サラダ 2個。"
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る