繁体   English   中英

Java String split regex无法按预期工作

[英]Java String split regex not working as expected

以下Java代码将打印“0”。 我希望这会打印“4”。 根据Java API String.split“将此字符串拆分为给定正则表达式的匹配项”。 并从链接的正则表达式文档:

预定义的字符类
任何字符(可能与行终止符匹配也可能不匹配)

因此,我希望在每个角色上分开“测试”。 我显然是在误解某些东西。

System.out.println("Test".split(".").length); //0

你是对的:它在每个角色上分开。 但是,此函数不返回“split”字符,因此得到0。

javadoc中的重要部分:“因此,尾随空字符串不包含在结果数组中。”

我想你想要"Test".split(".", -1).length() ,但这将返回5而不是4(有5个''空格'':一个在T之前,一个在T和e之间, es,st的最后一个,以及最后一个之后的最后一个。)

你必须使用两个反斜杠,它应该工作正常:这是一个例子:

String[] parts = string.split("\\.",-1);

一切都好。 “测试”在每个角色上分开,因此它们之间没有角色。 如果要在每个字符上迭代字符串,可以使用charAt和length方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM