字符串拆分模式java

时间:2016-02-06 23:51:54

标签: java regex string

我正在尝试在第i个位置拆分String数组。使用4个或更多空格的正则表达式。

我在这里和其他网站上发现了很多信息,因此我想出了

String[] parts = titlesAuthor[i].split("    ");

因此,可以在标题和作者名称之间进行拆分,该名称包含4个或更多空格或不存在。

示例:

titleAuthor[0] = Investigational drugs for autonomic dysfunction in Parkinson's disease          Perez-Lloret S

运行上面的拆分后,零件[0]将显示为空,零件[1]具有完整的字符串。

请帮忙!

代码:

for (int i = 0; i < nodes.getLength(); i++) { Element element = (Element) nodes.item(i); NodeList title = element.getElementsByTagName("TEXT"); line = (Element) title.item(0); titlesAuthor[i] = getCharacterDataFromElement(line); System.out.println(titlesAuthor[i]); parts = titlesAuthor[i].split(" "); System.out.println(parts[0]); System.out.println(parts[1]); } 

4 个答案:

答案 0 :(得分:1)

使用正则表达式\s{4}

实际上4是空格的数量,您可以将其更改为您想要的任何数字。

请参阅demo

答案 1 :(得分:0)

这将跳过这个空间.. 拆分(&#34; \ s +&#34;)

答案 2 :(得分:0)

要捕获4个或更多空格,您需要用+:

指示它
String[] parts = titlesAuthor[i].split("    +");

或:

String[] parts = titlesAuthor[i].split(" {4,}");

更新:看起来你的xml看起来并不像你想象的那样。在您提供的代码中添加:

System.out.println(i + ":" + titlesAuthor[i] + ";");

你会在beginnng看到一些空格或新行。

答案 3 :(得分:0)

在您的示例中,代码在找到四个连续的空格时会分裂。您在上面拆分的字符串之间有十个连续的空格:

"disease          Perez".

因此,空间之间存在分歧。假装“#”是一个空格:

Investigational drugs for autonomic dysfunction in Parkinson's disease|SPLIT|null|SPLIT|##Perez-Lloret S

您的拆分将导致:

{[Investigational drugs for autonomic dysfunction in Parkinson's disease],[null], [##Perez-Lloret S]}

因为您的代码找到了四个空格的两个实例。零件[1]是空的,因为两个分裂之间没有任何东西。

希望这有帮助!