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 []来修复它。但没有任何作用。我检查函数的输入并找不到错误。
答案 0 :(得分:0)
将其作为参数传递时尝试此操作:
javac YourJavaFileName.java
然后
java YourJavaFileName O X O X '#' O X O _ _ _ _ Y
hashkey正在停止将其余行读入args数组,因此我在它周围添加单引号。
编辑: 在得到@Andreas的进一步意见后:
答案 1 :(得分:0)
我犯了一个错误,我使用==来表示值的相等性,这实际上就是参考。当我用String.equal()替换==时,args可以正确传递。对于这个愚蠢的问题,我很抱歉。