2013-10-21 70 views
0

我有一個問題 - 有沒有可能在文本中識別負數,在右邊有負號? 例如我正在考慮這樣的數字:1500.0-(而不是-1500.0)。 非常感謝您的幫助。解析包含數字的字符串,右邊帶減號

+2

是的,有很多的可能性要做到這一點,你有什麼已經嘗試過? –

+1

是的。有可能的。您還有其它問題麼? – Pshemo

+1

我同意。這絕對有可能。至少在20世紀60年代有很多存在的證據。 –

回答

0

你可以使用charAtregular Expression,還有更多...

String s = "1500.00-"; 
if (s.charAt(s.length()-2) == '-'){ 
    //minus on the right. 
} 
1

它不僅是可能的,它實際上是更容易處理尾隨符號。您只需像往常一樣轉換數字,繼續獲取數字,如果數字以負號結尾,則只需將其取消即可。比必須記住領先標誌更容易。

儘管在JDK中提供的方法的名稱,這不是'解析',它是基數轉換。

0

首先移動負(如果有的話),從年底開始:

num = num.replaceAll("(.*)(-)?$", "$2$1"); 

這裏的好處是,如果有在年底,或YJR沒有減號減去我們alteady在一開始,沒有任何改變它。

然後分析它爲正常,如:

double d = Double.parseDouble(num); 
+0

作爲次要優化,檢查是否會更快if(num.charAt(num.length() - 1)==' - ')'比運行正則表達式? – Josh

+0

有更多的代碼和過早的優化:它可能會在執行時間內微掉@spacepope微秒。如果這是在一個緊密的循環中執行數百萬次,你可能會考慮更快的方法,但對於日常代碼,簡潔和方便大於(小)性能。 – Bohemian

相關問題