可以将Java Retval放入数组中吗
我正在扫描一个字符串对象数组,每个字符串对象将被分解成一个正则表达式 在执行增强的for循环时,我想知道是否可以将retval放入数组中 例如,如果我有字符串regex=newstring[3] 其中正则表达式[0]=“偶数(0 | 1)*0” 增强的for循环可以将字符串对象分解为偶数和(0 | 1)*0 我希望能够在一个数组中放入偶数,在另一个数组中放入(0 | 1)*0。下面是我用字符串对象扫描字符串数组的代码可以将Java Retval放入数组中吗,java,arrays,regex,string,Java,Arrays,Regex,String,我正在扫描一个字符串对象数组,每个字符串对象将被分解成一个正则表达式 在执行增强的for循环时,我想知道是否可以将retval放入数组中 例如,如果我有字符串regex=newstring[3] 其中正则表达式[0]=“偶数(0 | 1)*0” 增强的for循环可以将字符串对象分解为偶数和(0 | 1)*0 我希望能够在一个数组中放入偶数,在另一个数组中放入(0 | 1)*0。下面是我用字符串对象扫描字符串数组的代码 /* * Run through each String o
/*
* 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);
}
}
/*
*遍历每个字符串对象,并将它们适当地放置在,
*而且是明确的。
*/
对于(int j=0;j
对于正则表达式[0],split(“,2)分别返回偶数BIN和(0 | 1)*0
或者,如果您知道如何更好地解决此问题,请告诉我:
偶数(0 | 1)*0
奇数(0 | 1)*1
宠物(猫、狗)
大写字母中的部分将放入“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);
}
等等
或使用地图:
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]));
}
您最终将需要某种方法来确定在for循环中循环的元素,因此只需编写一个普通循环,并将返回值分配给相应的数组。
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");