为什么在 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]
将引发异常。
我想在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]
将引发异常。