我有一个程序,它接受一个字符串作为参数,并在文本文件中搜索字符串.
除非我输入*参数,否则一切都很完美.它打印出我目录中的所有文件名.我输入*参数时似乎没有通过代码.
有谁知道发生了什么?
您很可能从命令行传递一组文件.这个链接可能很有用:http: //en.wikipedia.org/wiki/Glob_ (programming)#Syntax
基本上,当你说
java ... *
Run Code Online (Sandbox Code Playgroud)
该*字符(由您的shell)扩展为当前目录中的文件列表.这发生在java甚至看到*字符之前,而java则看到"file1 file2 ...".
*在命令行上用单引号括起字符可能会有所帮助,如下所示:
'*'
Run Code Online (Sandbox Code Playgroud)
或逃避它:
\*
Run Code Online (Sandbox Code Playgroud)