-1
我正在編寫一個程序將羅馬數字轉換爲整數。我做的方法是尋找一個子字符串,將意味着減法(IX
,CM
,XC
)並添加相應的金額到理貨。例如,如果CM
在字符串MMMMCMXCIX
中,則將數百列設置爲9
。Java正則表達式查找子字符串
我試圖用
if(romanNum.matches("CM")){
hundreds = 9;
romanNum.replaceAll("CM", "");
}
做到這一點,但它從未進入if語句。使用thesetwo正則表達式跳棋以字符串MMMMCMXCIX
和正則表達式僅作爲CM
他們都強調比賽還沒有我的代碼,否則建議。爲什麼是這樣?
'Matcher.matches()'檢查**所有輸入**相匹配的圖案的,換句話說,它僅匹配,如果輸入是恰好'CM'而不是如果它是'MMMMCMXCIX'。改用其他方法,例如['Matcher.find()'](http://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html#find--)。 – Jesper
代碼有幾個問題。 1)使用'contains'來檢查一個字符串是否包含一個子字符串,2)將替換後的值賦給一個變量,3)用'String#replace'替換原義字符串,而不是'replaceAll'。 –