java - 如何拆分由字母和整数组成的字符串
问题描述
我有一个由字母后跟数字组成的字符串,例如
String s = "C34M78N8X";
我想用它旁边的数字分割每个字母,这样就可以了
{"C34" "M78" "N8" "X"} //in that order
关于我可以使用的任何类方法的任何String
想法Integer
?我是java的初学者,所以我正在尝试学习不同的东西。我到处研究,找不到任何东西。提前致谢
解决方案
您想在两个非数字字符之间拆分。
您可以使用以下任意两项来做到这一点:
?!\\d)
数字的零宽度负前瞻(?=\\D)
非数字的零宽度正前瞻
所以使用(?!\\d)(?=\\D)
正则表达式简单地说,“匹配你看到一个非数字后跟一个非数字的区域。 ”
String[] data = { "ABCDEF","A12345","A1B2C3D4","AX3YM67", "A1233BB1233", "A3D456F6D" };
List<List<String>> lists = new ArrayList<>();
for (String str : data) {
String[] st = str.split("(?!\\d)(?=\\D)");
lists.add(Arrays.asList(st));
}
for(int i = 0; i < data.length; i++) {
System.out.println(data[i] + " --> " + lists.get(i));
}
印刷
ABCDEF --> [A, B, C, D, E, F]
A12345 --> [A12345]
A1B2C3D4 --> [A1, B2, C3, D4]
AX3YM67 --> [A, X3, Y, M67]
A1233BB1233 --> [A1233, B, B1233]
A3D456F6D --> [A3, D456, F6, D]
推荐阅读
- angular - 我无法从角度调用 php 中的文件,显示 404 Not found
- c# - await slowest of two async methods
- r - 在 R 的箱线图中通过 outlier.shape=NA 更改 y_limit
- git - Git 'unable to unlink old file (permission denied)' error, but updating permissions doesn't work
- php - 待处理的帖子未显示在前端,但显示在 wordpress 的管理门户中
- omnet++ - .ini 文件中的 par() 意外行为
- system.reactive - 如何订阅 TypedEventHandler
使用 IObservable 的事件 - node.js - 如何使用 GitHub 操作导入私有数据?
- r - 向主箱线图中的辅助箱添加均值
- excel - 打开 Access 数据库连接/使用 Access Runtime 时 Excel VBA 过程崩溃