如何为我的字符串使用split方法

时间:2015-02-20 11:44:25

标签: java

我曾尝试拆分字符串,但无法获得预期的输出。见下面是代码:

String line="com.mgnt.util.DateTimeTokenizer.setEndDateTimeValues=90027";
String[] str=line.split("\\.(?=[^.]+\\.[^.]+$)");
for(int i=0;i<=str.length-1;i++)
{
    System.out.println(str[i]);
}

它提供以下输出:

com.mgnt.util
DateTimeTokenizer.setEndDateTimeValues=90027

显示上述拆分方法的正确输出。但是,我的期望如下,

com.mgnt.util
DateTimeTokenizer
setEndDateTimeValues
90027

我不知道如何使用正则表达式获得上述预期输出。 分享您的想法如果您知道。

2 个答案:

答案 0 :(得分:1)

试试:

String[] str = line.split("((?<=.*\\..*\\..*)\\.|=)");

此分割在.之前至少有两个.=

答案 1 :(得分:0)

你也可以试试这个:

Pattern pattern = Pattern.compile("^(.*)\\.(.*)\\.(.*)=(.*)$");
    Matcher matcher = pattern.matcher("com.mgnt.util.DateTimeTokenizer.setEndDateTimeValues=90027");

    if (matcher.find()) {
        System.out.println(matcher.group(1));
        System.out.println(matcher.group(2));
        System.out.println(matcher.group(3));
        System.out.println(matcher.group(4));
    }

结果

com.mgnt.util
DateTimeTokenizer
setEndDateTimeValues
90027