为什么不在java中使用没有args输入

问题描述 投票:0回答:1

我想在java中编写wc程序所以写了这段代码当我在cmd中编写命令时它运行良好但是当我没有为args写任何东西它应该适用于所有这些但是它不起作用并且给我一个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);
        }
    }
}
java args
1个回答
3
投票

我相信你所拥有的

if(args[0].isEmpty())

你的意思是

if (args.length==0)

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

© www.soinside.com 2019 - 2024. All rights reserved.