2012-12-04 36 views
2
public String getPriceString() { 
    String priceString = "45.0"; 
    String[] priceStringArray = priceString.split("."); 
    return priceStringArray.length + ""; 
} 

爲什麼這會給我一個0,零?這不應該是2嗎?Java:String split acting strange

+0

謝謝大家!我在刷新之前發現它是一個正則表達式代碼。 –

回答

6

split()的參數是一個正則表達式,dot在正則表達式中具有特殊含義(它與任何字符匹配)。

嘗試priceString.split("[.]");

+0

+1是唯一鏈接到文檔的鏈接。 – MikeTheLiar

0

轉義.帶有反斜槓,如\\..是任何東西的正則表達式元字符。你將與​​\\.逃避它,以讓它當作一個普通字符

 String priceString = "45.0"; 
     String[] priceStringArray = priceString.split("\\."); 
0

String.split採用正則表達式模式。您正在通過.,這意味着您要分割任意字符

可能使用"\\."作爲模式分裂的 - 但我個人會使用Guava代替:

private static final Splitter DOT_SPLITTER = Splitter.on('.'); 
... 

(如果你還沒有使用番石榴,你會發現負荷

0

你需要逃避.作爲\\.因爲.在正則表達式的特殊含義。

String priceString = "45.0"; 
String[] priceStringArray = priceString.split("\\."); 
return priceStringArray.length + ""; 
0

使用String[] priceStringArray = priceString.split("\\."); 你將不得不使用轉義序列。