如何根据更改的字符而不是单个分隔符拆分字符串?

时间:2015-02-25 19:42:02

标签: java regex string split

我在java中寻找一个解决方案,允许我拆分像这样的字符串" MM / dd / yyyy",而不是基于" /&#34 ;斜线,但基于" M"的变化到" d"并且来自" d"到" y"?

原因是我可能还需要使用这个根本没有分隔符的逻辑来分割字符串,例如" yyMMdd"。注意:我正在寻找拆分模式字符串本身,而不是一些遵循这些模式的实际日期字符串。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

鉴于你只想分割模式 - yy/MM/dd或任何其他模式,而不是格式化为这些模式的实际日期,我宁愿在这里使用Matcher,而不是split()

String patternString = "yy/MM/dd";
Pattern pattern = Pattern.compile("y+|M+|d+");
Matcher matcher = pattern.matcher(patternString);

while (matcher.find()) {
    System.out.println(matcher.group());
}

此解决方案不是拆分某个未知分隔符,而是找到yMd的序列(在任何模式中,这些将仅按顺序进行)。

答案 1 :(得分:0)

如果您始终知道格式,例如yyMMdd,您可以在每个字符上进行拆分,并假设每个字符都是您想要的字符。要执行此操作,您将使用不带分隔符的拆分:split('')