Java:使用命令行参数处理文件名
我正在编写一个程序,该程序将确定文本文件的行数、字符数和平均字长。对于该程序,规范规定该文件将作为命令行参数输入,并且我们应该为输入的每个文件创建一个TestStatistic对象。如果用户输入多个文件,我不知道如何编写代码来创建TestStatistic对象。处理命令行参数的最基本方法是:Java:使用命令行参数处理文件名,java,command-line,textinput,Java,Command Line,Textinput,我正在编写一个程序,该程序将确定文本文件的行数、字符数和平均字长。对于该程序,规范规定该文件将作为命令行参数输入,并且我们应该为输入的每个文件创建一个TestStatistic对象。如果用户输入多个文件,我不知道如何编写代码来创建TestStatistic对象。处理命令行参数的最基本方法是: public class TestProgram { public static void main(final String[] args) { for (String s
public class TestProgram
{
public static void main(final String[] args)
{
for (String s : args)
{
// do something with each arg
}
System.exit(0);
}
}
更好的方法是使用一些为您管理命令行参数的工具。我建议。处理命令行参数的最基本方法是:
public class TestProgram
{
public static void main(final String[] args)
{
for (String s : args)
{
// do something with each arg
}
System.exit(0);
}
}
更好的方法是使用一些为您管理命令行参数的工具。我建议。听起来您只需要遍历命令行参数并为每个参数生成一个TestStatistic对象 e、 g
听起来您只需要遍历命令行参数并为每个参数生成一个TestStatistic对象 e、 g
您还可以使用类似于处理命令行的工具。您也可以使用类似于处理命令行的工具。这里是对其他一般答案的扩展,进一步进行了补充
public class TextFileProcessor
{
private List testStatisticObjects = new ArrayList();
private void addFile(String fileName)
{
testStatisticObjects.add(new TestStatistic(fileName));
}
public static void main(String[] args)
{
TextFileProcessor processor = new TextFileProcessor();
for (String commandLineArgument : args)
{
//consider validating commandLineArgument here
processor.addFile(commandLineArgument);
}
...
}
}
这里是对其他一般答案的扩展,更进一步
public class TextFileProcessor
{
private List testStatisticObjects = new ArrayList();
private void addFile(String fileName)
{
testStatisticObjects.add(new TestStatistic(fileName));
}
public static void main(String[] args)
{
TextFileProcessor processor = new TextFileProcessor();
for (String commandLineArgument : args)
{
//consider validating commandLineArgument here
processor.addFile(commandLineArgument);
}
...
}
}
这是一个糟糕的建议,Commons CLI是一个甚至没有维护且语义糟糕的糟糕库。这是一个糟糕的建议,Commons CLI是一个甚至没有维护且语义糟糕的糟糕库。您的代码看起来很奇怪,ts的作用域是错误的。如果你有收藏品或类似的东西,它会更清晰。这看起来有点混乱。你的代码看起来很奇怪,ts的作用域是错误的。如果你有收藏品或类似的东西,它会更清晰。这似乎有点令人困惑。您不需要(也不应该)使用System.exit来生存。让main方法返回就行了。explict比implict好,特别是对于初学者!它并没有比汇编更明确,所以也许他们应该从这里开始?我不同意,对初学者来说,抽象程度越高越好。显然,您在某种程度上同意,因为您建议使用for each构造,而不是更明确的for循环标准;这将与明确的制度背道而驰;如果参数有问题,我强烈建议使用JSAP而不是手动解析数组。您不需要(也不应该)使用System.exit来存在。让main方法返回就行了。explict比implict好,特别是对于初学者!它并没有比汇编更明确,所以也许他们应该从这里开始?我不同意,对初学者来说,抽象程度越高越好。显然,您在某种程度上同意,因为您建议使用for each构造,而不是更明确的for循环标准;这将与明确的制度背道而驰;如果参数有问题,我强烈建议使用JSAP,而不是手动解析数组。