gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:30:56 25 4
gpt4 key购买 nike

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

当进行增强的 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/

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