[英]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.