【问题标题】:Formatting elements from array into a string将数组中的元素格式化为字符串
【发布时间】:2014-11-02 01:51:55
【问题描述】:

如果我有这样的数组:

array = ["A", "P", "P", "L", "E"]

而且我想用数组的元素来构建一个句子。 比如“我想要一个苹果”

我想我看到使用 yield 方法做了类似的事情。 但不确定如何在这种情况下使用它。

如果我只是将数组解析为这样的字符串:

the_word = array.to_s

它仍然显示为一个字符串数组。 [“A”、“P”、“P”、“L”、“E”]

所以我的问题是如何获取数组的元素并将元素格式化为字符串, 不重复整个句子多次?

【问题讨论】:

    标签: ruby arrays yield enumerable


    【解决方案1】:

    使用join():

    1.9.3-p547 :001 > array = ["A", "P", "P", "L", "E"]
     => ["A", "P", "P", "L", "E"] 
    1.9.3-p547 :002 > array.join()
     => "APPLE" 
    

    或者不带括号使用(感谢 Anthony 的评论):

    1.9.3-p547 :003 > array.join
     => "APPLE" 
    

    【讨论】:

    • 谢谢先生,ruby 中有很多方便的方法。
    • 能够join 使用某种分隔符或空字符串将数组的元素转换为字符串,这是我使用过的每种语言的标准方法或函数,除了汇编程序。所以,方便的不是 Ruby,实际上是多年的语言实现者看到了同样的需求。
    • 是的,你是对的,但 Ruby 似乎可以完成相同的任务,但与 Java 相比,代码更少。
    • 你可以做 array.join (没有括号 - 它假设你想在元素之间什么都不加入)
    【解决方案2】:

    还有另一种方法Array#*,称为重复 — 带有String 参数,相当于ary.join(str)。

    arup@linux-wzza:~> pry
    [1] pry(main)> array = ["A", "P", "P", "L", "E"]
    => ["A", "P", "P", "L", "E"]
    [2] pry(main)> array * ""
    => "APPLE"
    [3] pry(main)>
    

    【讨论】:

      猜你喜欢
      • 2021-05-10
      • 1970-01-01
      • 2012-05-31
      • 2011-02-09
      • 2016-02-25
      • 1970-01-01
      • 2010-10-16
      • 2013-09-14
      • 1970-01-01
      相关资源
      最近更新 更多