Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何拆分字符串并跳过空白?_Ruby_String_Split - Fatal编程技术网

Ruby 如何拆分字符串并跳过空白?

Ruby 如何拆分字符串并跳过空白?,ruby,string,split,Ruby,String,Split,我有一个字符串,如“这是一个测试”。我想用空格字符分割字符串。我是这样做的: puts " This is a test ".strip.each(' ') {|s| puts s.strip} 结果是: 这个 是 a 测试 这是一个测试 为什么最后一行是“这是一个测试”? 我需要的是,如果两个单词之间有两个或两个以上的空格字符,那么它不应该返回“行” 我只想将单词分成给定的字符串。 有人有主意吗 irb(main):002:0> " This is a test ".split

我有一个字符串,如
“这是一个测试”
。我想用空格字符分割字符串。我是这样做的:

puts " This   is a test ".strip.each(' ') {|s| puts s.strip}
结果是:

这个


a
测试
这是一个测试

为什么最后一行是“这是一个测试”? 我需要的是,如果两个单词之间有两个或两个以上的空格字符,那么它不应该返回“行”

我只想将单词分成给定的字符串。
有人有主意吗

irb(main):002:0> " This   is a test ".split
=> ["This", "is", "a", "test"]

irb(main):016:0* puts " This   is a test ".split
This
is
a
test

如果省略模式,则值为$; 使用。若美元;是nil(这是 默认情况下),str在空白处拆分 好像指定了`

你应该这样做

" This   is a test ".strip.each(' ') {|s| puts s.strip}
如果你不想最后一句“这是个测试”

因为

irb>>> puts " This   is a test ".strip.each(' ') {}
This   is a test
第一个命令“puts”将在超出每个块后执行。 省略第一个“看跌期权”,您就完成了