Java 有没有一种方法可以自动从Apache commons cli选项值中去掉前导空格?

Java 有没有一种方法可以自动从Apache commons cli选项值中去掉前导空格?,java,apache-commons-cli,Java,Apache Commons Cli,考虑以下示例: import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cl

考虑以下示例:

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;

public class ApacheCommonsCliWhitespaceTest {

  public static void main(String[] args) throws ParseException {
    Options options = new Options();
    Option option = new Option("t", "test", true, "test description");
    options.addOption(option);

    CommandLineParser parser = new DefaultParser();

    String[] parameters = new String[1];

    parameters[0] = "-t ping";
    CommandLine result = parser.parse(options, parameters);
    System.out.println("*" + result.getOptionValue("t") + "*");

    parameters[0] = "-test ping";
    result = parser.parse(options, parameters);
    System.out.println("*" + result.getOptionValue("t") + "*");
  }
}
结果将是

* ping*
* ping*
真的没有办法自动删除前导空格吗?我本以为这是一个常见的用例。

试试看

result.getOptionValue("t").trim()

不确定在您的情况下调整是否可行,但Commons CLI似乎需要格式
-arg=value
,因此以下结果为
*ping*

    parameters[0] = "-test=ping";
    result = parser.parse(options, parameters);
    System.out.println("*" + result.getOptionValue("t") + "*");

另请参见(虽然样本不一致,有时它们使用“-test”,这在1.4版中不适用。)

这是给定的,但我特别询问自动发生的情况。好吧,这是唯一的方法