我将如何将前两个数字分开,然后在Java中输入零用钱的Nd地址?我尝试过使用Java.util.regex包,但是只能使用字符串包吗?
字符串格式如下: 第2名:滚动 休息都是可变长度(名称,数字,地址)和没有空格的一切
提前致谢
答案 0 :(得分:0)
您可以将正面和负面前瞻结合起来按位置分割字符串:字母位于之前,数字位于要分割的位置之后:
public static void main(String[] args) {
String s = "ksdj23kdsjks34dkjjksd";
String[] split = s.split("(?<=\\w)(?=\\d)");
System.out.println(Arrays.toString(split));
}
答案 1 :(得分:0)
<强>解决方法1 强>
如果这是您的格式,您可以使用包含以下组的模式:
String str = "25subham2000bbsr";
String regex = "(\\d+)([a-z]+)(\\d+)([a-z]+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
System.out.println(matcher.group(4));
}
在这个正则表达式中有4组:
(\\d+) -- first numbers if you need just two you can use \\{2}
([a-z]+) -- followed by lower case alphabetical
(\\d+) -- followed by one or more degit
([a-z]+) -- followed by lower case alphabetical
<强>溶液2 强>
另一种解决方案,您可以使用replaceAll将每两个数字和字母分开:
String str = "25subham2000bbsr";
str = str.replaceAll("(\\d)([a-z])", "$1-$2").replaceAll("([a-z])(\\d)", "$1-$2");
//str = "25-subham-2000-bbsr"
String[] spl = str.split("-");//then you can use split with -
<强>输出强>
[25, subham, 2000, bbsr]
答案 2 :(得分:0)
我这样做了,它完成了!感谢帮助! !(https://i.stack.imgur.com/P1rdP.jpg)