java - 你能将 Java Retval 放入数组中吗

标签 java arrays regex string

我正在扫描字符串对象数组,每个字符串对象将被分解为一个正则表达式。

当进行增强的 for 循环时,我想知道是否可以将 retval 放入数组中?

例如,如果我有 String regex = new String[3];

其中 regex[0] = "EVEN_BIN_NUM (0|1)*0"

增强的 for 循环可以将我的 String 对象分解为 EVEN_BIN_NUM 和 (0|1)*0

我希望能够将 EVEN_BIN_NUM 放入一个数组中,并将 (0|1)*0 放入另一个数组中。这是我使用字符串对象扫描字符串数组的代码

    /*
     * Run through each String object and appropriately place them in the kind,
     * and explicit.
     */
    for (int j = 0; j < regex.length; j++)
    {
        for (String retval: regex[j].split(" ", 2))
        {
            System.out.println(retval);
        }
    }

对于 regex[0].split("", 2) 我得到 EVEN_BIN_NUM 和 (0|1)*0 分别返回。

或者,如果您知道如何以更好的方式解决此问题,请告诉我: EVEN_BIN_NUM (0|1)*0

ODD_BIN_NUM (0|1)*1

PET(猫|狗)

大写字母部分放入“kind”数组中,其余部分放入另一个数组中。

因此,kind 数组将包含三个字符串,另一个数组将包含三个字符串。

希望这不会太令人困惑......

最佳答案

使用 Map 对象来存储信息可能是个好主意,但是,如果您想以数组形式返回分析,则可以返回数组的数组并执行以下操作。

String[] regex = {"EVEN_BIN_NUM (0|1)*0", "ODD_BIN_NUM (0|1)*1", "PET (cat|dog)"} ;
String[][] split = new String[regex.length][];

for(int i = 0; i < regex.length; i++) {
  split[i] = regex[i].split(" ", 2);

}

然后您可以按如下方式访问数据

String firstProperty = split[0][0];   //EVEN_BIN_NUM
String firstRegex = split[0][1];      //(0|1)*0

String secondProperty = split[1][0];  //ODD_BIN_NUM
String secondRegex = split[1][1];     //(0|1)*1

等等。

或者使用 map :

Map<String, Pattern> map = new HashMap<>();

for(int i = 0; i < regex.length; i++) {
  String[] splitLine = regex[i].split(" ", 2);
  map.put(splitLine[0], Pattern.compile(splitLine[1]));

}

这样您的属性将直接映射到您的模式。

例如:

Pattern petPattern = map.get("PET");

关于java - 你能将 Java Retval 放入数组中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926115/

相关文章:

python - 提取子字符串的上下文 URL

java - Ajax 调用不同的 Controller

java - 这是什么类型的窗口,我该如何使用 Selenium 处理它?自动化?

c - 为什么我的输出没有随着每次循环迭代而改变?

javascript - 两个美元符号之间的文本 JavaScript 正则表达式

php - .htaccess 301 将正则表达式从 DotNetNuke 重定向到 Wordpress

java - 找不到 org.apache.thrift7.TBase 类

java - ReactJS 和 Java : Response to preflight request doesn't pass access control check

python - 根据值将数组拆分为多个新数组

c - 最后一次循环迭代的内存分配失败