Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串拆分为重叠部分_Java_Regex_String_Split - Fatal编程技术网

Java 将字符串拆分为重叠部分

Java 将字符串拆分为重叠部分,java,regex,string,split,Java,Regex,String,Split,我有这样的字符串: String s = "1234567890"; 我想使用split(“regex”)获得以下输出: 12 23 34 45 56 67 78 89 90 我应该使用什么正则表达式?这不是用正则表达式解决的合适问题 当有一个更简单更容易的方法来解决问题时,最重要的是 更明显和自我记录方式 public static void main(final String[] args) { final String s = "1234567890"; for (in

我有这样的字符串:

String s = "1234567890";
我想使用split(“regex”)获得以下输出:

12
23
34
45
56
67
78
89
90
我应该使用什么正则表达式?

这不是用正则表达式解决的合适问题 当有一个更简单更容易的方法来解决问题时,最重要的是 更明显和自我记录方式

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
publicstaticvoidmain(最终字符串[]args)
{
最终字符串s=“1234567890”;
对于(int i=0;i

有些人在遇到问题时会想 “我知道,我会使用正则表达式。”现在它们有两个问题。-杰米·扎温斯基

我同意,如果你不必使用正则表达式,还有其他简单的解决方案,那么就尽量避免使用正则表达式。但如果你不得不使用它,请阅读我其余的答案

不幸的是,您无法使用
split
,因为您希望在几个拆分部分中使用相同的数字,这是不可能的,因为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

在循环中使用
子字符串(from,to)
而不是regex…有些人在遇到问题时,会想“我知道,我会使用正则表达式。”现在他们有两个问题Jamie Zawinskiyou本可以很容易地修复一次性错误,并帮助所有人解决我可能遇到的问题。但是,正如我总是告诉那些代表性较低的用户的那样,应该在IDE中编写代码并粘贴到这里,以避免语法和其他明显的错误。这段代码可以很容易地运行并检查给定问题的正确性。为什么这不是一个用正则表达式解决的合适问题?你不解释原因,而且也不明显。。。至少对于Meth来说,答案是“当有一种更简单更容易的方法来解决问题时”。正则表达式是简单的“(?=(\\d{2})”,代码不再长。那么,它是如何变得更简单或更容易呢?我猜这似乎非常主观+1,将问题重命名为
将字符串拆分为重叠部分
,这样就有更好的机会被找到。:)