Ruby感叹号 - 打印下一行

时间:2015-02-28 19:58:20

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.1

TENANT_NAME=gets.chomp('/\p{Alnum}/')

$first = TENANT_NAME.slice(0,1).capitalize

$second = TENANT_NAME.slice(1..-1)

EXPORT_PASSWORD="Export-"+ $first + $second + "!"

puts EXPORT_PASSWORD

我想在单行中打印EXPORT_PASSWORD,但是当我尝试打印它时会打印出来!从另一条线。我正在使用Ruby 输出:

devi123kumari
Export-Devi123kumari
!

3 个答案:

答案 0 :(得分:0)

>TENANT_NAME=gets.chomp('/\p{Alnum}/')
somename
TENANT_NAME
=> "somename\n"

看到你正在\ n \ n这里正在改变你的!到第二行。

>TENANT_NAME=gets.chomp
somename
TENANT_NAME
=> "somename"

现在你不会得到额外的一线。

答案 1 :(得分:0)

尝试:

EXPORT_PASSWORD="Export-"+ $first + $second.chomp + "!"'

这是因为如果您检查$second的值,则它包含尾随\n

同样在Ruby中,将$预先添加到变量名称不是标准做法。

答案 2 :(得分:0)

chomp如果没有给出参数,则从字符串或回车符(即\n\r\r\n)的末尾删除给定的参数: / p>

"hello".chomp                #=> "hello"
"hello\n".chomp              #=> "hello"
"hello".chomp("llo")         #=> "he"

您的代码会从字符串末尾删除'/\p{Alnum}/'(这是一个字符串,而不是正则表达式):

'hello/\p{Alnum}/'.chomp('/\p{Alnum}/') #=> "hello"

这可能不是你想要的。只需使用chomp而无需参数。