Java:使用命令行参数处理文件名

发布于 2024-08-27 03:27:32 字数 148 浏览 6 评论 0原文

我正在编写一个程序,该程序将确定文本文件的行数、字符数和平均字长。对于该程序,规范规定一个或多个文件将作为命令行参数输入,并且我们应该为输入的每个文件创建一个 TestStatistic 对象。如果用户输入多个文件,我不明白如何编写用于生成 TestStatistic 对象的代码。

I'm a writing a program that will determine the number of lines, characters, and average word length for a text file. For the program, the specifications say that the file or files will be entered as a command line argument and that we should make a TestStatistic object for each file entered. I don't understand how to write the code for making the TestStatistic objects if the user enters more than one file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

赏烟花じ飞满天 2024-09-03 03:27:32

处理命令行参数的最基本方法是:

public class TestProgram
{
    public static void main(final String[] args)
    {
        for (String s : args)
        {
            // do something with each arg
        }
        System.exit(0);
    }
}

更好的方法是使用为您管理命令行参数的东西。我建议 JSAP:Java 简单参数解析器

The most basic way to process command line arguments is:

public class TestProgram
{
    public static void main(final String[] args)
    {
        for (String s : args)
        {
            // do something with each arg
        }
        System.exit(0);
    }
}

The preferable way is to use something that manages the command line arguments for you. I suggest JSAP: The Java Simple Argument Parser.

白首有我共你 2024-09-03 03:27:32

听起来您只需要迭代命令行参数并为每个参数生成一个 TestStatistic 对象。

例如

public static void main(String[] args)
{
   for (String arg : args) {
      TestStatistic ts = new TestStatistic(arg); // assuming 'arg' is the name of a file
   }
   // etc...

It sounds like you simply need to iterate through your command line args and produce a TestStatistic object for each.

e.g.

public static void main(String[] args)
{
   for (String arg : args) {
      TestStatistic ts = new TestStatistic(arg); // assuming 'arg' is the name of a file
   }
   // etc...
成熟稳重的好男人 2024-09-03 03:27:32

这是对其他一般答案的扩展,并进一步阐述。

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);
        }
        ...
    }
}

Here's an expansion on other general answers, flushed out a bit further.

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);
        }
        ...
    }
}
小糖芽 2024-09-03 03:27:32

您还可以使用 Commons CLI 之类的东西来处理命令行。

You can also use something like Commons CLI to process command line.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文