2014-11-04 93 views
-1

我是比較新的這...的Java:字符串的replaceAll另一個字符串

我試圖執行replace.all將與數值替換「定價」的所有實例串也是一個變數:價格

SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING",PRICE); 

以下是我得到的錯誤。

Error in method invocation: Method replaceAll(java.lang.String, double) not found in class'java.lang.String' 

感謝您的幫助

+7

問題是......? – ToYonos 2014-11-04 18:23:36

+0

你的代碼是可以的!..價格是字符串的權利? – 2014-11-04 18:26:53

+0

你可以請你提供你的問題以及..感謝.. – sTg 2014-11-04 18:27:09

回答

2

試試這個:

SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING", String.valueOf(PRICE)); 
+0

它在那裏!非常感謝,我仍然知道這一點幫了大忙。 – user1629055 2014-11-04 18:34:57

1

價格必須是STRING不翻番。

你可以試試這個:

String price = String.valueOf(PRICE) 
SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING",price); 
+0

我看到謝謝!所以也許我應該花更多的時間學習字符串等。我只是在構建價格變量時遇到困難,因此它是一個字符串而不是雙精度值? – user1629055 2014-11-04 18:31:03

+0

@ user1629055很高興幫助你:D!你現在可以檢查答案正確! – 2014-11-04 18:32:49

+0

@ user1629055 - 將'price'保留爲'double'(尤其是,如果您使用它進行計算)。 – 2014-11-04 18:33:48

0

replaceAll()需要輸入作爲,

public String replaceAll(String regex, 
       String replacement) 

因此在更換應該是string這裏,不是double爲你的錯誤說,

Error in method invocation: Method replaceAll(java.lang.String, double) 

將其轉換爲String使用valueOf()方法。或者,

String price= Double.toString(PRICE); 

瞭解更多關於String#replaceAll()方法

0
String pricing = MessageFormat.format("{0, number, currency}", PRICE); 

SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING", pricing); 

必須是一個字符串。

這裏我使用帶有MessageFormat的默認語言環境。

此外:BigDecimal可能是比有損雙倍更好的選擇。 BigDecimal必須使用類似add的方法,但double只是實數的近似值。

0

變量PRICE是double類型的,而方法replaceAll需要第二個參數是一個String。只需添加轉換:

SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING",String.valueOf(PRICE)); 
0

下面的代碼應該可以正常工作。

SUBSCRIPTION = SUBSCRIPTION.replaceAll("PRICING",String.valueOf(PRICE)); 
0

正如錯誤消息所示,replaceAll()方法接受兩個字符串參數。嘗試使用「String.valueOf(PRICE)」將您的double轉換爲String表示。

相關問題