字符串操作

JaX*_*JaX 0 java string

我的字符串格式为XxYxZx

X,Y和Z是字符,x是可以在0-999之间变化的数字.

我想以这种形式拆分这个字符串.如何才能做到这一点?

  1. XX
  2. YX
  3. ZX

例:

 Input:  "A155B45C77D89" 
 Output: "A155", "B45", "C77", "D89"
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 8

String myString="A155B45C77D89";
String[] parts = myString.split("(?<=\\d)(?=\\p{Alpha})");
System.out.println(Arrays.toString(parts));
Run Code Online (Sandbox Code Playgroud)

输出:

[A155, B45, C77, D89]
Run Code Online (Sandbox Code Playgroud)

说明:

String.split适用于正则表达式.正则表达式(?<=\d)(?=\p{Alpha})表示"匹配所有以字符串开头的子字符串,后跟字母字符.

在诸如此类的字符串中"A155B45C77D89",此表达式由空子字符串匹配

A155 B45 C77 D89
    ^   ^   ^
  here  |   |
       here |
            |
        and here
Run Code Online (Sandbox Code Playgroud)