String data ="A486A946D48967E456F679B3425B234C847C
A725A872D74985E45346F679B86705B234C2847C
Output should be in format like below:
-486
-3425
-847
-725
-86705
-2847
Run Code Online (Sandbox Code Playgroud)
以上是我想要提取值的数据.它们的格式相同,如:A...A...D...E...F...B...B...C...C点表示数字.
我想提取上面A-A, B-B和之间的数字C-C.所有这些数据都以字符串形式存储在一行中.我使用了模式匹配器,但它没有用.请给我任何建议.
Pattern pattern = Pattern.compile("([A-Z])(\\d+)\\1");
Matcher m = pattern.matcher(data);
while (m.find()) {
String letter = m.group(1);
String digits = m.group(2);
int n = Integer.parseInt(digits);
System.out.printf("- %s = %d%n", letter, n);
}
Run Code Online (Sandbox Code Playgroud)
该模式包括:
([A-Z]) =第1组,大写字母(\d+) =具有一个或多个数字的组2\1 =第1组的值| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |