gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:02:43 25 4
gpt4 key购买 nike

有什么有效的方法可以做到这一点吗?

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

  1. 字符串[]命令
  2. 字符串[]字
  3. 字符串[]文件名

示例:

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"

语法中 - 命令,单词 - 文件名

“--”每次都会位于和文件名之间。

我已经完成了以下代码,但效率不高。使用 String.split("") 并一次又一次地划分为不同的字符串数组,效率不高。

最佳答案

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

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

一旦您将所有参数按类型分开,您就可以轻松地对它们执行任何您想要的操作,或者根据您的意愿重新排列它们。这也比正则表达式更有效。

关于java - 使用正则表达式删除逗号和空格并将它们划分为不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40621631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com