将字符串拆分为重叠部分

时间:2013-06-01 19:34:19

标签: java regex string split

我有这样的字符串:

String s = "1234567890";

我想使用split(“regex”)来获得此输出:

12
23
34
45
56
67
78
89
90

我应该使用什么正则表达式?

2 个答案:

答案 0 :(得分:11)

我同意Jarrods answer,如果您不必使用正则表达式,并且还有其他简单的解决方案,那么请尽量避免使用正则表达式。但是如果你必须使用它,请阅读我的答案......

不幸的是,您无法使用split来执行此操作,因为您希望在少数拆分中使用相同的数字,这是不可能的,因为拆分不能将新内容添加到数据中。

您可以使用前瞻机制

String data = "1234567890";
Matcher m = Pattern.compile("(?=(\\d\\d))").matcher(data);
while (m.find())
    System.out.println(m.group(1));

输出:

12
23
34
45
56
67
78
89
90

答案 1 :(得分:10)

使用正则表达式

解决这个问题不是一个合适的问题

当有更容易和更简单的方法来解决问题时,最重要的是 更明显和自我记录的方式来做到这一点。

public static void main(final String[] args)
{
    final String s = "1234567890";
    for (int i = 0; i < s.length() - 1; i++)
    {
        System.out.println(s.substring(i,i+2));
    }
}

12
23
34
45
56
67
78
89
90
  

有些人在面对问题时会思考   “我知道,我会使用正则表达式。”现在他们有两个问题。 - 杰米·扎温斯基