簡體   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