使用单词拆分字符串但将单词保留在每个数组索引中

Split string using word but keep the word in each array index

下面的代码,

            String string = "<xml attributes>some xml code</xml>"
                            + "<xml attributes>some xml code</xml>"
                            + "<xml attributes>some xml code</xml>"
                            + "<xml attributes>some xml code</xml>";

            String[] stringArray = string.split("<xml");

            for ( String i : stringArray) {

                System.out.println(i);
            }

版画

 attributes>some xml code</xml>
 attributes>some xml code</xml>
 attributes>some xml code</xml>
 attributes>some xml code</xml>

但我想在每个数组索引中保留 <xml 单词,因此输出将是,

 <xml attributes>some xml code</xml>
 <xml attributes>some xml code</xml>
 <xml attributes>some xml code</xml>
 <xml attributes>some xml code</xml>

怎么样:

        String string = "<xml attributes>some xml code</xml>"
                        + "<xml attributes>some xml code</xml>"
                        + "<xml attributes>some xml code</xml>"
                        + "<xml attributes>some xml code</xml>";

        String strPattern = "<xml";
        String[] stringArray = string.split(strPattern);

        for ( String i : stringArray) {

            System.out.println(strPattern + i);
        }

稍微更改您的代码以使用正向后视。

String[] stringArray = string.split("(?<=</xml>)");

O/P :

<xml attributes>some xml code</xml>
<xml attributes>some xml code</xml>
<xml attributes>some xml code</xml>
<xml attributes>some xml code</xml>

我只能想到蛮力的方法:

String string = "<xml attributes>some xml code</xml>"
            + "<xml attributes>some xml code</xml>"
            + "<xml attributes>some xml code</xml>"
            + "<xml attributes>some xml code</xml>";

    String[] stringArray = string.split("<xml");

    for (int i = 1; i < stringArray.length; i++) {
        stringArray[i] = "<xml"+stringArray[i];
    }
    for ( String i : stringArray) {

        System.out.println(i);
    }

请注意,for (String element : stringArray) 在这里不起作用,因为它按值复制元素,而不是指向数组中元素的指针。