当前位置: 首页 > 知识库问答 >
问题:

Java-读取带“*”的参数

鲁明知
2023-03-14

我需要制作一个程序,从命令行获取可选参数。如果显示flag-regex,我需要读取下面的正则表达式,并将其作为字符串保存到程序中。类似于:javamain-regex*。java

我现在看到的是:

public static void main(String[] args) 
...
if (args[i].equals("-regex")) {
   String myRegex = args[i+1];
   System.out.println(myRegex);
   i++;
   i++;

}
...

但是,当我从文件夹运行程序时,其中有些文件是file1。java文件2。java,程序将打印“file1.java”。如何使用“*.java”获取变量?

当我尝试打印所有参数时,使用:

for (String arg:args) {
    System.out.println(arg);
}

它给了我:

-regex
file1.java
file2.java

这让我得出结论,我需要以不同的方式阅读参数...

共有3个答案

冯文彬
2023-03-14

您需要在命令行命令中加上双引号("),例如:

java Main "-regex *.java"

然后用这样的东西:

String myRegex = "";
for (int i = 0; i < args.length; i++) {
    if (args[i].startsWith("-regex")) {
        String[] commandParts = args[i].split("\\s+");
        if (commandParts.length > 1) {
            myRegex = commandParts[1];
            System.out.println(myRegex);
        }
    }
} 

应用程序启动时,控制台将显示*. java

井唯
2023-03-14

您需要为您使用的shell/终端转义星号,因为shell在运行java应用程序之前正在执行文件名扩展。对于bash,您可以使用反斜杠,这应该通过*. file作为args[1]

java -cp your.jar your.Main -regex \*.file

在某些shell中,使用quote还可以避免默认的文件扩展,并在使用Windows CMD时进行修复。EXE:

java -cp your.jar your.Main -regex "*.file"
乜昆
2023-03-14

在Java中,使用string.compareTo(string)来比较字符串,而不是=-运算符:

    package com.main;
    
    public class Main {
        public static void main(String[] args) {
            if (args[0].compareTo("-regex") == 0) {
                String myRegex = args[1];
                System.out.println(myRegex);
            }
        }
    }
 类似资料:
  • 问题内容: 我是否可以使用一组参数启动 Java WebStart 应用程序,就像用标记配置了applet一样? 谢谢 问题答案: 是的,您可以看到以下示例: 显示向您传递参数“ -user = bob”和“ -pass = 8jkaiuasu”到应用程序。以标准方式获取参数。

  • 问题内容: 我试图找出是否有一种方法可以从正在运行的Java进程中确定JVM启动属性。具体来说,我试图找出存储- Xmx(最大堆大小)和-XX:MaxPermSize之类的参数的位置。我正在运行Sun的1.6 jvm。 如果您想知道为什么要执行此操作,则有许多JVM Web服务器可能已正确配置,也可能未正确配置,因此我想将其添加到启动代码检查中。对于我来说,签入到处部署的一段Java代码比手动查找

  • 问题内容: 我正在阅读Wikipedia上的Singleton文章,并且遇到了以下示例: 虽然我真的很喜欢Singleton的行为方式,但是我看不到如何修改它以将参数合并到构造函数中。用Java进行此操作的首选方法是什么?我需要做这样的事情吗? 谢谢! 编辑:我想我对使用Singleton的渴望已经引发了一场争论的风暴。让我解释一下我的动机,并希望有人可以提出一个更好的主意。我正在使用网格计算框架

  • 奖金f(a_3,(a_3+A_4)*4)可以捕捉所有的表达式,而不仅仅是(a_3,(a_3+A_4)?

  • 本文向大家介绍java读取xml配置参数代码实例,包括了java读取xml配置参数代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了java读取xml配置参数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 paras.xml文件 SysParam.java类文件 使用 需要引用包 以上就是本文的全部内容,希望对大家的学习

  • 我对swift非常陌生,所以我的代码中可能会有很多错误,但我试图实现的是向带有paramters的本地主机服务器发送请求。更重要的是,我试图实现它,因为我的函数接受两个参数。我不确定如何将这两者结合到实际的URLRequest中?以下是我到目前为止所尝试的