【问题标题】:Ruby exclamation mark -printing next lineRuby感叹号 - 打印下一行
【发布时间】:2015-05-01 09:53:58
【问题描述】:
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,但是当我尝试打印时,它会打印出来!从另一条线。我正在使用红宝石 输出:

devi123kumari
Export-Devi123kumari
!

【问题讨论】:

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


    【解决方案1】:
    >TENANT_NAME=gets.chomp('/\p{Alnum}/')
    somename
    TENANT_NAME
    => "somename\n"
    

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

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

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

    【讨论】:

      【解决方案2】:

      试试:

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

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

      在 Ruby 中,在变量名前添加 $ 也不是标准做法。

      【讨论】:

        【解决方案3】:

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-02-07
          • 2019-01-31
          • 2015-03-09
          • 2018-03-18
          • 1970-01-01
          • 2012-01-27
          • 2012-03-06
          • 2011-09-15
          • 2018-02-08
          相关资源
          最近更新 更多