String delimiterStr = "|", line="1231|08062016|4441|10|PayeeName1|REF1";
String ISSUE_UPLOAD_FILE_PATTERN = "(?<=(^|" + delimiterStr + "))(([^\"" + delimiterStr + "]*)|\"([^\"]*)\")(?=($|" + delimiterStr + "))";
List<String> splitString = new ArrayList<String>();
Matcher matcher = Pattern.compile(ISSUE_UPLOAD_FILE_PATTERN).matcher(line);
while (matcher.find()) {
if (matcher.group(3) != null) {//NOPMD,old code
System.out.println(matcher.group(3));
splitString.add(matcher.group(3));
}
}
System.out.println(splitString.size()+"::--->"+splitString);
OutPut :- 12::--->[1231, , 08062016, , 4441, , 10, , PayeeName1, , REF1, ]
Oben Muster nimmt Platz nach jeder aufgeteilten Zeichenfolge, wie Sie in der Ausgabe sehen können. Ich möchte nach jeder Saite keinen Platz nehmen. Es muss Platz benötigen, wenn in der Eingabezeichenfolge Platz vorhanden ist, andernfalls sollte es keinen Platz einnehmen. Welche Änderungen müssen in meinem Muster vorgenommen werden?Platz nimmt nach jedem String
Nein ist es nicht. Verwenden Sie eine for-each-Schleife, um Ihre Ausgabe zu drucken. Du wirst keine Leerzeichen sehen. – TheLostMind