【问题标题】:How to specify an end-line character in Ruby?如何在 Ruby 中指定结束行字符?
【发布时间】:2015-08-27 10:42:37
【问题描述】:

以下代码有效:

IO.foreach("C:\\Users\\zeus\\Desktop\\db.txt") do |line|
  puts line
end

但是我想一个一个地打印每个字符
问题是我无法指定行尾。我有一个输入文件如下:

适配器:postgresql
数据库:你好
用户名:postgres
密码:zues
游泳池:5
超时:5000

和这样的代码:

IO.foreach("db.txt") do |line|
  i = 0
    while line[i] != '\n'
      print line[i]
      i = i+1
    end
    puts
end

但它只像这样打印第一行:

适配器:postgresql

【问题讨论】:

  • 你的代码中的一端太多了。
  • @Borsunho 感谢您的错误,但错误未修复
  • 检查我在下面发布的答案,兄弟。
  • 它对你有用吗,@ChandraShekhar?

标签: ruby


【解决方案1】:

没有比这更简单的了。您所要做的就是写"\n" 而不是'\n',先生:

IO.foreach("db.txt") do |line|
  i = 0
    while line[i] != "\n"
      print line[i]
      i = i+1
    end
    puts
end

但是 hspandher 在他的帖子中是正确的 - 您尝试这样做的方式不是 Ruby 方式。
可能您是 ruby​​ 的新手,并且您以前使用 C/C++/Java 进行编码,或者您只需要以这种方式实现(家庭作业,w/e),但是无论您以后要如何处理这段代码,逐个字符地迭代不是最成功的选择。

不管怎样,我上面的代码已经解决了你的问题,请随意测试一下。

【讨论】:

    【解决方案2】:

    此代码在屏幕上逐个字符打印,\n 除外

    IO.foreach("db.txt") do |line|
        i = 0
            while line[i] != "\n"
                puts line[i]
                i = i+1
            end
    end
    

    【讨论】:

      猜你喜欢
      • 2020-12-10
      • 2017-07-21
      • 2012-04-05
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多