下面的代码长于建议的80个字符。

我试图将其分解并用+运算符和<<运算符将其连接起来,但是它似乎不起作用。 我试过了.to_s方法,并将冒号移到了自己的字符串中,但无济于事。

将其拆分为2或3行而no method "+@":String错误的正确方法是什么?

string = "#{sprintf("%02i", hours)}:#{sprintf("%02i", minutes)}:#{sprintf("%02i", seconds)}"

===============>>#1 票数:5 已采纳

您可以将三个sprintf合并为一个:

string = sprintf("%02i:%02i:%02i", hours, minutes, seconds)

===============>>#2 票数:1

要在Ruby中将字符串拆分为多行,请使用反斜杠:

string = "#{sprintf("%02i", hours)}: \
#{sprintf("%02i", minutes)}: \
#{sprintf("%02i", seconds)}"

请注意如何只有一个开口和一个闭合"

您也可以考虑sprintf方法的三个调用转移为一个。

===============>>#3 票数:0

我猜您真正的问题是,给定秒数或一个时间对象,您想要构造具有所需格式的字符串。

如果给您seconds

def fmt(seconds)
  hours, minutes = seconds.divmod(60)
  "%02d, %02d, %02d" % [hours, *minutes.divmod(60)]
end

fmt(223)
  #=> "03, 00, 43" 

如果为您提供了Time对象:

require 'time'

def fmt(time)
  time.strftime('%H hours, %M minutes, %S seconds')
end

time = Time.now
  #=> 2015-05-16 14:38:02 -0700 
fmt(time)
  #=> "14 hours, 38 minutes, 02 seconds"

在第二种情况下,我添加了“小时”,“分钟”和“秒”一词,以说明如何修改格式字符串。

如果要在多行上打印,只需在适当的格式字符串中插入换行符( \\n )。

  ask by Jeff translate from so

未解决问题?本站智能推荐:

3回复

Rails 3中的字符串连接

我想知道为什么会这样:如果加号和下一个字符串之间有空格,Ruby会连接两个字符串。 但如果没有空间,它是否适用于一些一元运算符?
2回复

Ruby:搜索具有部分动态内容的字符串(内插REGEX?)

如何在红宝石中搜索文本以查找内容可能不同的字符串,例如 正则表达式的目标是将某些内容与版本号的效果进行匹配,但由于字符串的其余部分都匹配,因此我们不必关心版本号是什么。
2回复

连接CSV的数组和字符串

我正在尝试将字符串连接到数组值。 由于URL /域相同,因此我只存储用户的电子邮件前缀并附加URL /域。 我需要将完整的电子邮件地址导出为CSV: 当前结果输出为: 我需要的是: 如何实现以上目标?
1回复

将变量更改为字符串

请参阅以下代码(摘自Learning Ruby一书): 为什么需要在put线上将start变量更改为字符串? 例如,我不能简单地把puts "Minutes: #{start}"放进去? 另外, start.downto(1)行:是块{|i| sleep 60} {|i| sl
1回复

用JSON字符串分配变量

我有一个JSON字符串,我想将其分配给一个变量。 我怎样才能做到这一点? 不起作用。 谢谢
2回复

连接字符串不等于文字字符串?

我正在尝试使用正则表达式并在ruby中测试我自己的代码。 使用下面的例子,我预计最终的回报会返回true,但事实并非如此。 但是,check_password方法会返回“你的pw不起作用,因为它太短”为什么真/假检查不返回true?
5回复

用ruby字符串中的值替换变量,字符串本身是否存储在变量中?

我有一个包含字符串的变量,在运行时我要替换存储在该字符串中的一些变量。 例如.. 输出: - 问题是: 解决方案1: 一种方法可以..字符串替换,如使用gsub ..但这不是一个好... PS: 我想要实现的目标。 我们必须提供一些100条消息
3回复

Ruby连接字符串并添加空格

我有4个字符串变量name, quest, favorite_color, speed可能为空。 我想将它们连接在一起,在非空的空格之间放置空格。 代码的简单性,即查看和理解的简单程度,比速度更重要。 所以: 变 和 变为: 请注意,'Steve'和's
1回复

+ =和<<之间的Ruby差异以连接字符串[duplicate]

这个问题在这里已有答案: 在Ruby中构建字符串时,为什么铲运算符(<<)比plus-equals(+ =)更受欢迎? 7个答案 在Ruby 1.8.7上,当发现在String对象上<<和+=之间似乎存在巨大差异时,我正在进行循环连接字符串
4回复

如何拆分字符串,迭代它,并输出连接的版本

我正在写一种加密方法。 我正在为caesar_cipher编写代码。 我写的代码如下: 当我传递一个由多个单词组成的字符串时,我收到此错误: 我理解如果我要创建一个类, tr可以解决我的问题。 我有一个独立的方法,除了句子之外,它适用于caesar_cipher每个角度。