gpt4 book ai didi

ruby - Ruby 中的 String#split 未按预期运行

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:14 25 4
gpt4 key购买 nike

File.open(path, 'r').each do |line| 
row = line.chomp.split('\t')
puts "#{row[0]}"
end

path是包含姓名、年龄、职业、爱好等内容的文件路径

我希望输出只是名称,但我得到了整行。

为什么会这样?

最佳答案

这个问题已经有了一个可接受的答案,但值得注意的是原始问题的原因是什么:

这是问题部分:

split('\t')

Ruby 有几种引用字符串的形式,它们各有不同,通常都是有用的。

引自Ruby Programming at wikibooks.org :

...double quotes are designed to interpret escaped characters such as new lines and tabs so that they appear as actual new lines and tabs when the string is rendered for the user. Single quotes, however, display the actual escape sequence, for example displaying \n instead of a new line.

进一步阅读链接文章,了解 %q%Q 字符串的使用。或谷歌搜索“ruby string delimiters”,或查看 this SO question .

因此 '\t' 被解释为“反斜杠+t”,而 “\t” 是制表符。

String#split 也将采用 Regexp,在这种情况下可能会消除歧义:

split(/\t/)

关于ruby - Ruby 中的 String#split 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com