什么是args.length<在java中1?

时间:2015-10-04 14:46:41

标签: java

我对Java很陌生,所以对其他人来说这可能很简单。

我正在按照教程制作文本摘要,我遇到了一个小问题。当我运行我的程序时,它输出“Usage:java Main input.txt keywords ...”。所以它遵循代码“if(args.length< 1)”来做到这一点。但是,如何更改它以便读取文本文件并继续执行程序。

generateummary类可以很好地工作。

if(args.length < 1){
  System.out.println("Usage: java Main input.txt keywords ...");
  return;
}

String filePath = args[0];

if(filePath == null){
  filePath = "./input.txt";
}

String[] keywords = null; 
if(args.length < 2){
  keywords = new String[1];
  keywords[0] = "";
}
else{
  keywords = new String[args.length-1];
  for(int i=1; i<args.length; i++){
    keywords[i-1] = args[i];
  }
}

System.out.print("keywords:\t");
for(String keyword : keywords){
  System.out.print(keyword+"\t");
  System.out.println();
}

//String[] keywords = null; 
Generator generator = new Generator();

generator.loadFile(filePath);
generator.setKeywords(keywords);
generator.generateSignificantSentences();
System.out.println(generator.generateSummary());
generator.generateSummary();

} }

4 个答案:

答案 0 :(得分:1)

这是一个简单的检查,看看用户在启动应用程序时是否至少提供了一个参数。 args.length给出了包含命令行参数的数组的长度。为了能够运行它,您需要提供一个fileName作为参数 - 这就是错误所暗示的内容。 因此,在命令行中,您可以编写类似java Main filename.txt的内容,以便能够通过检查。

答案 1 :(得分:0)

您的主要方法与main(String[] args)类似。现在,当你试图运行该类时,我猜你输入了以下命令。

java classname

因此,在这种情况下args将不包含任何内容。但是如果你输入

java classname fielName

args将包含文件名,它不会进入第一个if块。因为长度og args是1。

答案 2 :(得分:0)

args.length提供发送到Java应用程序的参数的长度。如果args.length&lt; 1,这意味着没有发送任何参数。

您需要发送您希望应用程序处理的文件名。如果您从命令行运行Java,则只需将文件名添加到命令中,例如&#34; java Main file.txt&#34;。

另请注意,如果您使用IDE进行开发(例如Eclipse),则需要以特定于该IDE的方式发送参数(文件名)。您应该参考该IDE的帮助,或在此处发布。

最后,您可以直接在程序中的文件名中进行编码,而不必通过命令行发送。删除检查args.length的if(...)语句,并将filePath声明更改为:

String filePath =&#34; /path/to/filename.txt" ;;

祝你好运,并祝你在Java学习上有所作为!

答案 3 :(得分:0)

我知道你在main方法中执行该代码。主要方法有下一个签名:

public static void main(String[] args){ ... }

此方法是java中的应用程序入口点。看着它的签名你可以看到它收到一个名为args的参数,它是一个String数组。由于主要方法是入口点,因此这些参数来自您正在执行应用程序的位置(终端,IDE等)。 lenght是java数组的属性,用于存储数组所具有的元素数。通过执行if(args.length < 1),您正在检查是否收到的参数少于一个,因为代码期望文件名作为参数。哟必须从终端执行您的代码,如第二行所示

  

System.out.println(“用法:java Main input.txt keywords ...”);

要在eclipse中添加参数,您必须将它们放入“运行&gt;运行配置...&gt;参数”。本文完美地解释了它:cs.colostate.edu/helpdocs/eclipseCommLineArgs.html