字符串#在Ruby中拆分的行为不符合预期
字符串#在Ruby中拆分的行为不符合预期,ruby,Ruby,path是包含名称、年龄、职业、爱好等内容的文件的路径 我希望输出的名称只,但我得到了整个行 为什么会这样?你的问题不是很清楚 拆分(“\n”)-如果要按行拆分 拆分-如果要按空格拆分 我可以理解,您不需要chomp,因为它删除了所有“\n”您的问题不是很清楚 拆分(“\n”)-如果要按行拆分 拆分-如果要按空格拆分 我可以理解,您不需要chomp,因为它删除了所有“\n”问题已经有了公认的答案,但值得注意的是,最初问题的原因是: 这是问题所在: File.open(path, 'r').eac
path
是包含名称、年龄、职业、爱好等内容的文件的路径
我希望输出的名称只,但我得到了整个行
为什么会这样?你的问题不是很清楚
拆分(“\n”)
-如果要按行拆分
拆分
-如果要按空格拆分
我可以理解,您不需要chomp,因为它删除了所有“\n”您的问题不是很清楚
拆分(“\n”)
-如果要按行拆分
拆分
-如果要按空格拆分
我可以理解,您不需要chomp,因为它删除了所有“\n”问题已经有了公认的答案,但值得注意的是,最初问题的原因是: 这是问题所在:
File.open(path, 'r').each do |line|
row = line.chomp.split('\t')
puts "#{row[0]}"
end
Ruby有几种引用字符串的形式,它们有区别,通常是有用的
引述自:
…双引号旨在
解释转义字符,例如
新的行和选项卡,以便它们出现
当
为用户呈现字符串。
但是,单引号显示
例如,实际的转义序列
显示\n而不是新行
进一步阅读链接文章,了解%q
和%q
字符串的用法。或谷歌搜索“ruby字符串分隔符”,或参阅
因此,“\t”
被解释为“反斜杠+t”,而“\t”
是制表符
String#split
还将采用Regexp
,在这种情况下,这可能会消除歧义:
split('\t')
这个问题已经有了公认的答案,但值得注意的是,最初问题的原因是什么: 这是问题所在:
File.open(path, 'r').each do |line|
row = line.chomp.split('\t')
puts "#{row[0]}"
end
Ruby有几种引用字符串的形式,它们有区别,通常是有用的
引述自:
…双引号旨在
解释转义字符,例如
新的行和选项卡,以便它们出现
当
为用户呈现字符串。
但是,单引号显示
例如,实际的转义序列
显示\n而不是新行
进一步阅读链接文章,了解%q
和%q
字符串的用法。或谷歌搜索“ruby字符串分隔符”,或参阅
因此,“\t”
被解释为“反斜杠+t”,而“\t”
是制表符
String#split
还将采用Regexp
,在这种情况下,这可能会消除歧义:
split('\t')
编辑您的问题以包含示例输入和输出-这将有助于人们回答您的问题。编辑您的问题以包含示例输入和输出-这将有助于人们回答您的问题。对不起,先生,如何接受nd我实际解决了我的问题,我正在使用拆分('\t'),如果(“\t”)我使用的单引号是错误的。若要接受答案,可以单击问题右侧的复选标记。要更新答案,您可以单击指向上方的三角形,该三角形也位于答案的右侧。很幸运,先生,但是如何接受nd我实际上解决了我的问题我使用了拆分('\t'),如果我使用的(“\t”)单引号接受答案是错误的,您可以单击问题右侧的复选标记。要更新答案,您可以单击指向上方的三角形,该三角形也位于答案的右侧。幸运的是,你的答案更准确。因为那个家伙说的是行,他的问题不是很清楚,我想他是在寻找一种将文本逐行分割的方法。是的,你的答案更精确。因为那个家伙在谈论行,他的问题不是很清楚,我想他是在寻找一种按行分割文本的方法。