Ruby- 帮助将 4 位数年份输入转换为 2 位数输出
Ruby- Help converting 4 digit year input into 2 digit output
到目前为止我有。
puts "Enter year:"
year = gets.chomp.to_i
res = year %2 100
puts "Welcome to '#{year}"
我哪里错了?
好吧,您需要稍微更新一下代码示例,试试这个:
puts "Enter year:"
year = gets.chomp.to_i # 4 digits year like 2022
res = year % 100 # 2 digits year like 22
puts "Welcome to '#{res}"
我认为你混淆了两件事:
获取年份的“最后一部分”(模 100):year % 100
,其中 %
是模运算符。
并使用前导零打印出 2 位数字的值:"%02d" % value
,其中 %
是不同的运算符,用于分隔模板字符串及其参数。
你应该结合这些东西:
year = 2002
res = "%02d" % (year % 100)
puts res
# 02
其他人已经指出了您具体代码的大部分问题,所以我不会这样做。不过,我确实想建议您甚至不需要转换为 integer
或使用 modulo
。您应该能够简单地使用字符串并获取最后 2 个字符:
year = gets.chomp
puts "Welcome to '#{year[-2..-1]}"
#=> Welcome to '22
到目前为止我有。
puts "Enter year:"
year = gets.chomp.to_i
res = year %2 100
puts "Welcome to '#{year}"
我哪里错了?
好吧,您需要稍微更新一下代码示例,试试这个:
puts "Enter year:"
year = gets.chomp.to_i # 4 digits year like 2022
res = year % 100 # 2 digits year like 22
puts "Welcome to '#{res}"
我认为你混淆了两件事:
获取年份的“最后一部分”(模 100):
year % 100
,其中%
是模运算符。并使用前导零打印出 2 位数字的值:
"%02d" % value
,其中%
是不同的运算符,用于分隔模板字符串及其参数。
你应该结合这些东西:
year = 2002
res = "%02d" % (year % 100)
puts res
# 02
其他人已经指出了您具体代码的大部分问题,所以我不会这样做。不过,我确实想建议您甚至不需要转换为 integer
或使用 modulo
。您应该能够简单地使用字符串并获取最后 2 个字符:
year = gets.chomp
puts "Welcome to '#{year[-2..-1]}"
#=> Welcome to '22