我有这样的字符串:
String s = "1234567890";
我想使用split(“regex”)来获得此输出:
12
23
34
45
56
67
78
89
90
我应该使用什么正则表达式?
答案 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
有些人在面对问题时会思考 “我知道,我会使用正则表达式。”现在他们有两个问题。 - 杰米·扎温斯基