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