日期:2014-05-20  浏览次数:20681 次

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]); 
        }
  } 
}