使用正则表达式删除逗号和空格,并将它们划分到不同的变量中



有什么有效的方法吗?

我想将参数传递给命令行并将它们划分为以下内容:

    <
  1. String[]命令/gh><
  2. String[]词/gh><
  3. String[]文件名/gh>

例子:

String[] arg = {"-b", "-f", "-i", "Dog", "Cat", "--", "fileName1.txt", "fileName2.txt", "fileName3.txt"};
Main.main(arg);
String[] arg = {"-f", "-i", "Hi", "Hello", "--", "fileName1.txt", "fileName2.txt"};
Main.main(arg);
String[] arg = {"-i", "Hi", "Hello", "--", "fileName2.txt"};
Main.main(arg);

注意:

Syntax:  "[-b] [-f] [-l] [-i]  <from> <to> -- " + "fileName"

语法-命令,word——fileName

"——"每次都在文件名之间。

我已经完成了下面的代码,这是不有效的。使用字符串。分割(" ")并一次又一次地分割成不同的字符串数组,这是不高效的

我从来都不理解为什么要在这样简单的事情上使用正则表达式。为什么不直接创建三个列表并循环遍历参数,同时将它们拆分为正确的列表呢?

ArrayList<String> flags = new ArrayList<>();
ArrayList<String> words = new ArrayList<>();
ArrayList<String> files = new ArrayList<>();
for (String arg : args) {
    if (arg.equals("--")) {
        continue;
    }
    if (arg.contains(".")) {
        files.add(arg);
    }else if (arg.contains("-")) {
        flags.add(arg);
    }else {
        words.add(arg);
    }
}

一旦你把所有的参数按类型分开,你就可以很容易地对它们做任何你想做的事情,或者根据你的意愿重新排列它们。这也比正则表达式更有效。

最新更新