在Java中拆分字符串并删除空白

时间:2013-04-30 18:49:57

标签: java string split

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

<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个字母的字符串。

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

3 个答案:

答案 0 :(得分:6)

将拆分更改为s.split("[<>]+")。但是,数组开头仍会有"",这是how split works所致。

答案 1 :(得分:2)

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

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]

答案 2 :(得分:0)

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