Comment puis-je effectuer une partie de code en utilisant la carte et match?

EVASI0N:

Je veux effectuer cette partie de mon code, car auparavant j'avais 3 IF pour correspondre match comme

    if (matcher1.find()) {
        myMap.put(matcher1.group(1), matcher1.group(2)
    }
    if (matcher2.find()) {
        myMap.put(matcher2.group(1), matcher2.group(2)
    }
    if (matcher3.find()) {
        myMap.put(matcher3.group(1), matcher3.group(2)
    }

et je veux savoir si je peux EnGlobe ce match 3 si l'un et le mettre sur ma carte avec le matcher correspondant :) comme:

for (int i = 0; i < result.size(); i++) {
            Matcher matcher1= patternRecordType.matcher(result.get(i));
            Matcher matcher2 = patternCustomerAreaRecordType.matcher(result.get(i));
            Matcher match3 = patternTotal.matcher(result.get(i));

            if (matcher1.find() || matcher2.find() || matcher3.find()) {
                myMap.put(matcherX.group(1), matcherX.group(2));
            }

        }
Amongalen:

Il est impossible de remplacer vos 3 « si » avec un seul. Notez que dans le premier cas, en une seule interation vous pouvez entrer dans 3,2,1 ou 0 « si » blocs résultants en ayant 0-3 éléments ajoutés à la carte. Si vous fusionnez les 3 conditions dans un « si » vous entrez dans le « si » une seule au mieux, ce qui à au plus 1 élément ajouté dans la carte.

Cependant, vous pouvez créer une collection de tous les Matchers puis effectuer une correspondance et en ajoutant pour chacun d'eux. Il ressemblerait à quelque chose comme ceci:

List<Matcher> matchers = new ArrayList<>();
Matcher matcher1= patternRecordType.matcher(result.get(i));
Matcher matcher2 = patternCustomerAreaRecordType.matcher(result.get(i));
Matcher matcher3 = patternTotal.matcher(result.get(i));
matchers.add(matcher1);
matchers.add(matcher2);
matchers.add(matcher3);

for (Matcher matcher : matchers){
    if (matcher.find()) {
        myMap.put(matcher.group(1), matcher.group(2));
    }
}

Pour seulement 3 Matchers il serait trop compliquer le code, mais si vous avez plus de 5 Matchers différents alors je considère quelque chose comme ça.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=373226&siteId=1
conseillé
Classement