java中关于星号的问题
今天看到一个程序本是想玩玩没想到遇到一个蛮有趣的问题,不知道win中的×有什么特别的意义,我只知道在Java中的正则表达式中他的意义,下面是描述:
class test{
public static void main(String []args){
System.out.print(args[0]);
}
}
操作如下
C:\Documents and Settings\Administrator\桌面>javac test.java
C:\Documents and Settings\Administrator\桌面>java test 3
3
C:\Documents and Settings\Administrator\桌面>java test #
#
C:\Documents and Settings\Administrator\桌面>java test %
%
C:\Documents and Settings\Administrator\桌面>java test *
360保险箱.lnk
郁闷的就在这里了,360保险箱.lnk是我桌面上的一个快捷方式,我改成360时就变成以下请况
C:\Documents and Settings\Administrator\桌面>java test *
360.lnk
忘高手指点!
------解决方案--------------------这是Dos的问题,?和*在dos里是通配符,分别表示文件名的1个字符和所有字符。
在执行java test *的时候,先由操作系统将*转义成表示所有字符的文件,其实是很多文件名。
你可以试一下,dir *,看看列表的文件名顺序,然后执行java test *,看结果是不是dir结果的第一个文件,
然后再删除第一个文件名(或改名),我想再执行java test *时,应该显示dir结果的第二个文件了。
------解决方案--------------------你把代码改成:
Java code
class test{
public static void main(String []args){
for(int i=; i<args.length;i++){
System.out.print(args[i]);
}
}
}