BigDecimal に解析しようとしている文字列があります。次の正規表現を使用して、-,.()$ を除くすべての非通貨記号を削除しています。削除したら、残りの値で BigDecimal を作成しようとしています。問題は、負の値が括弧内に出くわしたときに始まります。このインスタンスを修復する方法について何か提案はありますか?
(1000.00) fails
どういうわけか括弧を負の記号に変換する必要があると思います。
コードサンプル。
public BigDecimal parseClient(Field field, String clientValue, String message) throws ValidationException {
if (clientValue == null) {
return null;
}
try {
clientValue = clientValue.replaceAll( "[^\\d\\-\\.\\(\\)]", "" );
return new BigDecimal(clientValue.toString());
} catch (NumberFormatException ex) {
throw new ValidationException(message);
}
}