我想在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);
}
}
}
我相信你所拥有的
if(args[0].isEmpty())
你的意思是
if (args.length==0)
如果没有向程序传递任何参数,args
将是一个空数组,因此尝试访问args[0]
将引发异常。