java参数函数不接受String [] args

时间:2016-10-18 17:13:38

标签: java

    public static void main(String[] args){
    String[] test={"O","X","O","X","#","O","X","O","_","_","_","_","Y"};
    Tic(test);
    Tic(args);
}

当我使用命令行给出参数时:O X O X#O X O _ _ _ _ Y

它们应该是相同的,但后者会返回null解决方案。 我的算法是实现某种博弈论。我在Tic函数中使用了几个递归。 在这个主要方法中,当我使用测试时,我可以得到我的解决方案。但是,由于args也是String []的类型,当我想做Tic(args)时,它根本不会进行递归并且会得到一个null结果。 我尝试通过将args转移到新的String []来修复它。但没有任何作用。我检查函数的输入并找不到错误。

2 个答案:

答案 0 :(得分:0)

将其作为参数传递时尝试此操作:

javac YourJavaFileName.java

然后

java YourJavaFileName O X O X '#' O X O _ _ _ _ Y

hashkey正在停止将其余行读入args数组,因此我在它周围添加单引号。

编辑: 在得到@Andreas的进一步意见后:

  • #之后的所有内容都被视为基于Unix的系统中的注释 因此它不会被读入args。这不会发生在 但是Windows操作系统。

答案 1 :(得分:0)

我犯了一个错误,我使用==来表示值的相等性,这实际上就是参考。当我用String.equal()替换==时,args可以正确传递。对于这个愚蠢的问题,我很抱歉。