如何在java中评估多个if条件

时间:2016-04-22 05:55:17

标签: java regex arraylist

我有一个复杂的数据结构(称为twoDim),如下所示

[[Bolus Exposure (Impedance)Upright], [,  Recumbent, Total], [,  Upright Normal Recumbent Normal Total], [Normal], [Acid Time,  11.0 min, 0.0 min, 11.0 min], ]
[[Acid Exposure (pH),  Upright], [Recumbent, Total], [,  Upright Normal Recumbent Normal Total], [Normal], [Clearance pH  :  Channel 7]]
[[Postprandial Data], [,  Postprandial Interval:  120 min]]
[[Reflux Study Summary], [Acid Exposure (pH),  Upright, Recumbent, Total], [,  Upright Normal Recumbent Normal Total], ]]

我想只提取[[Acid Exposure (pH), Upright], [Recumbent, Total], [, Upright Normal Recumbent Normal Total], [Normal], [Clearance pH : Channel 7]]

提取应基于" Recumbent"是其中一个内部数组中的第一个元素。

我的代码:

    ArrayList<ArrayList> AcidExpMain = new ArrayList<ArrayList>();
    ArrayList<ArrayList> temp = new ArrayList<ArrayList>();
         Pattern tu1 = Pattern.compile("Acid Exposure \\(pH\\)");
         Pattern tu2 = Pattern.compile("Recumbent");

    for (List<String> row : twoDim) {

                 if (tu1.matcher(row.get(0)).matches() && tu2.matcher(row.get(0)).matches()) {
                     AcidExpMain.add((ArrayList<List<String>>) twoDim);
                     System.out.println("Success");

                 }
}

但是我没有抓住比赛。如果我分别评估每个匹配语句,他们就会完成自己的工作。那么我的错误在哪里?

我也试过

for (List<String> row : twoDim) {

                 if (tu2.matcher(row.get(0)).matches()) {

                     temp.add((ArrayList<List<String>>) twoDim);
                     System.out.println("Success"+temp.size());
                     for (ArrayList<String> t : temp) {
                         System.out.println(t+"Success");
                         if (tu2.matcher(temp.get(0).toString()).matches()) {
                             AcidExpMain.add((ArrayList<List<String>>) twoDim);
                             System.out.println("Success");
                         }
                     }

                 }

1 个答案:

答案 0 :(得分:0)

您应该迭代结构并进行比较。

String[] rows = twoDim.split("[[");
for (String row : rows) {
String[] cols = row.split("[");

然后比较每列,以查看第一个单词是否为卧式。