有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的字符串操作:在数字后拆分字符串

我的绳子是XxYxZx

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

我想把这个字符串拆分成这个形式。如何做到这一点

  1. Xx
  2. Yx
  3. Zx

示例:

 Input:  "A155B45C77D89" 
 Output: "A155", "B45", "C77", "D89"

共 (2) 个答案

  1. # 1 楼答案

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

    输出:

    [A155, B45, C77, D89]
    

    解释:

    String.split使用正则表达式。正则表达式(?<=\d)(?=\p{Alpha})表示“匹配所有子字符串,前面是一个数字,后面是一个字母字符

    "A155B45C77D89"这样的字符串中,这个表达式由空的子字符串匹配

    A155 B45 C77 D89
        ^   ^   ^
      here  |   |
           here |
                |
            and here
    
  2. # 2 楼答案

    public static void main(String[] args) {
            Pattern p = Pattern.compile( "([A-Z])([0-9]+)" );
            Matcher m = p.matcher( "X01Y123Z99" );
            while ( m.find() ) {
                System.out.println( m.group( 1 ) + " " + m.group( 2 ) );
            }
        }
    

    印刷品

    X 01
    Y 123
    Z 99