为什么在 java 中没有输入 args 时不工作

Why is not working with no args input in java

我想在java写wc程序所以写了这段代码 当我在 cmd 中编写命令时它工作得很好但是当我不为 args 写任何东西时它应该适用于所有这些但它不起作用并且给我一个 Exception with args[0].equal ... 。 感谢您的帮助!

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int linesNumber = 0;
        int wordsNumber = 0;
        int charsNumber = 0;
        String line;
        String word;
        while (!(line = scan.nextLine()).isEmpty()) {
            linesNumber++;
            Scanner reader = new Scanner(line); //reading lines
            while (reader.hasNext()) {
                word = reader.next();
                wordsNumber++;
                charsNumber += word.length();
            }
        }
        if(args[0].isEmpty()){
            System.out.print(linesNumber +" " +wordsNumber +" " +charsNumber);
        }else if(args[0].equals("-l") || args[0].equals("--lines")){
            System.out.println(linesNumber);
        }else if(args[0].equals("-w") || args[0].equals("--words")){
            System.out.println(wordsNumber);
        }else if(args[0].equals("-c") || args[0].equals("--chars")){
            System.out.println(charsNumber);
        }
    }
}

我相信你有

if(args[0].isEmpty())

你是说

if (args.length==0)

如果您不向程序传递任何参数,args 将是一个空数组,因此尝试访问 args[0] 将引发异常。