ruby - 将多个 .length 调用添加在一起

标签 ruby string integer

我正在使用《学习编程》一书,该书教新手如何从 Ruby 开始编程。那家伙说尝试创建一个程序,询问我的个人姓名(第一个中间名和最后一个姓氏),然后使用length相加并得到我的名字中有多少个字符的总和。我到目前为止没有搞砸:

puts 'enter your first name'
first = gets.chomp
puts 'first name is ' + first + '.'
puts 'enter your middle name.'
middle = gets.chomp
puts 'middle name is ' + middle + '.'
puts 'enter your last name.'
last = gets.chomp
puts 'last name is ' + last + '.'
puts 'Full name is ' + first + ' ' + middle + ' ' + last + '.'

所以我尝试了一些事情,例如

puts 'there are ' + first.length + middle.length + last.length.to_s + 'characters in your name!'

似乎没有什么作用。

最佳答案

尝试使用双引号字符串,让 ruby​​ 使用 #{} 符号为您计算代码

puts "there are #{first.length + middle.length + last.length} characters in your name!"

针对评论的更新

其实很简单。在 Ruby 中,无论您在其中放入什么内容,单引号字符串都被视为文本,而双引号字符串则由 Ruby 解释器解析。因此,如果您使用带有 #{} 符号的双引号字符串,那么大括号内的所有内容都将被视为 ruby​​ 代码。

要使您原来的方式起作用,请尝试将这些值添加在一起并将它们分配给另一个变量,然后输出该变量

例如

total_length = first.length + middle.length + last.length
puts 'there are ' + total_length.to_s + ' characters in your name!"

你的方法的问题是你将三个值加在一起,但第3个值有一个 to_s ,所以 ruby​​ 会混淆最后一个数字是字符串还是数字,而前两个值是添加不是字符串,因此不应包含在 put 语句中。

希望这是有道理的

关于ruby - 将多个 .length 调用添加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11147406/

相关文章:

r - 为什么R将大数视为偶数

php - 等同于 PHP 的 .= 运算符的 ruby​​?

c# - 如何将字符串转换为变量,vb6/c#/c++?

ruby - PG错误无法连接到服务器: Connection refused Is the server running on port 5432?

android - 比较 Android 中的日期字符串

string - 字符串文字中的自动换行符

javascript - 使用正则表达式验证输入中是否包含任何非数字

java - 将数组中的整数拆分为单个数字

ruby-on-rails - 获取最后 5 个唯一的 created_at 日期

ruby - 使单元测试快速失败以进行突变测试