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

时间:2015-06-08 13:35:13

标签: java regex string split

以下代码,

            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>

但我想在每个数组索引中保留&lt; 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>

3 个答案:

答案 0 :(得分:5)

稍微改变你的代码以使用正面的后视。

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>

答案 1 :(得分:2)

怎么样:

        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);
        }

答案 2 :(得分:2)

我只能想到这样做的蛮力方式:

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)在这里不起作用,因为它按值复制元素,而不是指向数组中元素的指针。