当我键入“时,为什么程序引用同一目录中的第一个文件?”;java字符*“;?

当我键入“时,为什么程序引用同一目录中的第一个文件?”;java字符*“;?,java,command-line,directory,output,args,Java,Command Line,Directory,Output,Args,这确实是一个Unix CLI问题 问题在于,在将通配符(*)输入java之前,通配符(*)被扩展(globbed)到目录中的所有条目,也就是说,它被转换为 public class Char { public static void main(String[] args) { String plainText = args[0]; char [] a = plainText.toCharArray(); System.out.prin

这确实是一个Unix CLI问题

问题在于,在将通配符(*)输入java之前,通配符(*)被扩展(globbed)到目录中的所有条目,也就是说,它被转换为

public class Char
{

    public static void main(String[] args) {
        String plainText = args[0];

        char [] a = plainText.toCharArray();

        System.out.println(a);
    }

}
如果要将*字符提供给java,可以将其用单引号括起来,也可以用反斜杠转义

java char BooleanLoop.java BooleanLoop.class etcetera etcetera

这确实是一个Unix CLI问题

问题在于,在将通配符(*)输入java之前,通配符(*)被扩展(globbed)到目录中的所有条目,也就是说,它被转换为

public class Char
{

    public static void main(String[] args) {
        String plainText = args[0];

        char [] a = plainText.toCharArray();

        System.out.println(a);
    }

}
如果要将*字符提供给java,可以将其用单引号括起来,也可以用反斜杠转义

java char BooleanLoop.java BooleanLoop.class etcetera etcetera

当我运行程序“javachar*”时,它输出“BooleanLoop.java”,这是同一目录中的第一个文件,我通过删除“BooleanLoop.java”文件进行测试,然后它输出目录中的下一个文件“BooleanLoop.class”。当我运行程序“java char*”时,如果我键入其他字符,例如“java char+”,程序运行平稳,它输出同一目录中的第一个文件“BooleanLoop.java”,我通过删除“BooleanLoop.java”文件进行测试,然后它输出目录中的下一个文件“BooleanLoop.class”。如果我键入其他字符,例如“javachar+”“*”返回\$AVG,“*”按预期执行,那么程序运行平稳,但我的最终目标是拥有一个可以作为计算器工作的程序。因此,我还希望使用StdIn或其他东西使输入看起来像“3*3”或“3+3”。那么基本上输入+-*/字符最简单的方法是什么?同样感谢您的快速响应。将整个字符串包装成单引号就可以了。请注意,使用StdIn和命令行参数是两种不同的东西。这是我第一次提交代码。向您展示更多代码的最佳方式是什么?“*”返回\$AVG,“*”按预期执行,但我的最终目标是拥有一个可以作为计算器工作的程序。因此,我还希望使用StdIn或其他东西使输入看起来像“3*3”或“3+3”。那么基本上输入+-*/字符最简单的方法是什么?同样感谢您的快速响应。将整个字符串包装成单引号就可以了。请注意,使用StdIn和命令行参数是两种不同的东西。这是我第一次提交代码。向您展示更多代码的最佳方式是什么?