1

我要拆分的是以下字符串:

<java><jquery><comments>

我使用以下拆分方法,如下所示:

   String s = "<java><jquery><comments>";
        String[] arr = s.split("<|>");
        for(String a: arr){
            System.out.println(a);
        }

输出如下:

java

jquery

comments

问题是我不想要空行。拆分返回的数组大小为 6。我想要的只是 3 个字母字符串。

我应该使用正则表达式来获取所有字母,还是像上面那样使用拆分?

4

3 回答 3

6

将拆分更改为s.split("[<>]+"). ""但是,数组的开头仍然会有 a ,这是由于split 的工作原理

于 2013-04-30T18:51:04.490 回答
2

我认为您应该使用 Pattern、Matcher 和 Matcher#find 而不是 String#split:

Pattern p = Pattern.compile("<([^>]+)>");
Matcher m = p.matcher("<java><jquery><comments>");
for (int i=0; m.find(); i++)
    System.out.printf("MATCHED[%d]: [%s]%n", i, m.group(1));

输出:

MATCHED[0]: [java]
MATCHED[1]: [jquery]
MATCHED[2]: [comments]
于 2013-04-30T19:23:53.317 回答
0

您还可以使用StringTokenizer对象根据正确的模式拆分字符串。

于 2013-04-30T21:07:16.387 回答