Nyg*_*ger 2 java regex string split
我有这样的字符串:
String s = "1234567890";
Run Code Online (Sandbox Code Playgroud)
我想用split("regex")来获得这个输出:
12
23
34
45
56
67
78
89
90
Run Code Online (Sandbox Code Playgroud)
我应该使用什么正则表达式?
Psh*_*emo 11
我同意Jarrods的回答,如果您不必使用正则表达式,并且还有其他简单的解决方案,那么请尽量避免使用正则表达式.但是如果你必须使用它,请阅读我的其余答案......
不幸的是你无法做到这一点split,因为你想在少数分裂部分中使用相同的数字,这是不可能的,因为分裂不能为数据添加新的内容.
您可以使用前瞻机制来完成它
String data = "1234567890";
Matcher m = Pattern.compile("(?=(\\d\\d))").matcher(data);
while (m.find())
System.out.println(m.group(1));
Run Code Online (Sandbox Code Playgroud)
输出:
12
23
34
45
56
67
78
89
90
Run Code Online (Sandbox Code Playgroud)
小智 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
Run Code Online (Sandbox Code Playgroud)
有些人在遇到问题时会想 "我知道,我会使用正则表达式." 现在他们有两个问题. - 杰米·扎温斯基