如何获取用户输入ARGV.first
并将其转换为字符串,以便搜索特定文本?
我试图创建一个checkifinstring = #{ARGV.first}.join("")
`checkifinstring =~ /s/
如何获取用户输入ARGV.first
并将其转换为字符串,以便搜索特定文本?
我试图创建一个checkifinstring = #{ARGV.first}.join("")
`checkifinstring =~ /s/
如果您阅读过有关ARGV的任何内容,您会发现它是一个字符串数组。
因为它是一个数组,你可以遍历它,从中提取单个元素,或者将元素连接起来形成一个长字符串。
尝试编写一些代码,并使用一些额外的参数从命令行执行它。插件行如:
puts ARGV.first
puts ARGV.last
puts ARGV.join(' ')
ARGV.each_with_index do |arg, i|
puts "arg ##{ i } ==> #{ arg }"
end
第一行将返回传递给脚本的第一个参数,第二行将是最后一个参数,第三行将是传入命令的合理复制。其余行将返回传递给脚本的每个参数及其索引数字。
我将其保存为“test.rb”并从命令行运行它:
ruby ~/Desktop/test.rb one two three four
并得到了这个输出:
one
four
one two three four
arg #0 ==> one
arg #1 ==> two
arg #2 ==> three
arg #3 ==> four
一旦你知道了这些东西,剩下的就很容易了:
ARGV.first['on'] # => "on"
ARGV.first['an'] # => nil
如果以上没有意义,那么深入String[]
研究它对子字符串匹配的使用。
如果你想使用命令行参数,我强烈建议你不要尝试重新发明你自己的系统来传递它们,而是依赖 Ruby 的OptionParser类。它更加复杂和强大,允许您使用标志、可选和必需参数、长短名称、内置帮助为脚本提供标准命令行界面,并且可以将输入值从字符串强制转换为整数和数组. OptionParser 的文档不是很好,但我们可以帮助您。
ARGV包含用于运行 ruby 的命令行参数,第一个值包含可执行文件的名称。
返回 ARGV 数组,其中包含传递给脚本的参数,每个元素一个。
例如:
$ ruby argv.rb file1 file2
ARGV #=> ["file1", "file2"]
ARGV.first #=> "file1"
因此,从您的问题来看,如果您获得了字符串数组,则可以轻松地从该数组中搜索输入字符串
ARGV.select{|f| f == "file1"}
希望对你有帮助