public String getPriceString() {
String priceString = "45.0";
String[] priceStringArray = priceString.split(".");
return priceStringArray.length + "";
}
爲什麼這會給我一個0,零?這不應該是2嗎?Java:String split acting strange
public String getPriceString() {
String priceString = "45.0";
String[] priceStringArray = priceString.split(".");
return priceStringArray.length + "";
}
爲什麼這會給我一個0,零?這不應該是2嗎?Java:String split acting strange
split()
的參數是一個正則表達式,dot在正則表達式中具有特殊含義(它與任何字符匹配)。
嘗試priceString.split("[.]");
+1是唯一鏈接到文檔的鏈接。 – MikeTheLiar
轉義.
帶有反斜槓,如\\.
。 .
是任何東西的正則表達式元字符。你將與\\.
逃避它,以讓它當作一個普通字符
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
你需要逃避.
像
String[] priceStringArray = priceString.split("\\.");
split
需要正則表達式作爲參數,並.
意味着任何角色。
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#sum
String.split
採用正則表達式模式。您正在通過.
,這意味着您要分割任意字符。
您可能使用"\\."
作爲模式分裂的 - 但我個人會使用Guava代替:
private static final Splitter DOT_SPLITTER = Splitter.on('.');
...
(如果你還沒有使用番石榴,你會發現負荷 )
你需要逃避.
作爲\\.
因爲.
在正則表達式的特殊含義。
String priceString = "45.0";
String[] priceStringArray = priceString.split("\\.");
return priceStringArray.length + "";
使用String[] priceStringArray = priceString.split("\\.");
你將不得不使用轉義序列。
謝謝大家!我在刷新之前發現它是一個正則表達式代碼。 –