Bhavin S.:
Première utilisation I déclaration Regex.
J'ai déclaration java regex, qui a divisé par chaîne modèle avec liste de certains caractères.
String line = "F01T8B02S00003H04Z05C0.12500";
Pattern pattern = Pattern.compile("([BCFHSTZ])");
String[] commands = pattern.split(line);
for (String command : commands) {
System.out.print(command);
}
sortie de code ci-dessus est comme (018020000304050,12500)
En fait, je veux sortie comme ça, ( "F", "01", "T", "8", "B", "02", "S", "00003", "H", "04", « Z », "05", "C", "0,12500").
Des moyens de sortie souhaitée est contient le caractère de motif et la valeur de division à la fois.
Pouvez-vous s'il vous plaît me suggérer?
Kevin Cruijssen:
Vous pouvez utiliser une chaîne # divisée sur ce [A-Z]
qui maintient le séparateur comme élément séparé :
String line = "F01T8B02S00003H04Z05C0.12500";
String[] result = line.split("((?<=[A-Z])|(?=[A-Z]))");
System.out.println(java.util.Arrays.toString(result));
Ce qui se traduira par la chaîne-tableau:
[F, 01, T, 8, B, 02, S, 00003, H, 04, Z, 05, C, 0.12500]