私のコードは次のとおりです。はNumberFormatExceptionがBigDecimalの
String sql="insert into L_EC(AMOUNT)values(?)";
pst=con.prepareStatement(sql);
for(int i=0;i<dtm.getRowCount();i++){
BigDecimal nbr= parsing(dtm.getValueAt(i, 1).toString());
prst.setBigDecimal(1, nbr);
prst.addBatch();
}
prst.executeBatch();
情報: 列はCurrency
private static BigDecimal parsing(String str) {
String normalized="";
if(str==null){
normalized="0";
}else{
normalized = str.replaceAll("\\s", "").replace(',', '.');
}
return new BigDecimal(normalized);
問題がテーブルからセルがNULL含まれているとき、私はこれを取得することをあるタイプのものでありメッセージ:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:545)
at java.math.BigDecimal.<init>(BigDecimal.java:739)
at Vista.TCRCG.parse(TCRCG.java:130)
私は問題が同程度だと思いますパーサーがテキストや値を持たないセルを見つけたときに、メソッドを呼び出すことができます。
私は私のコードにこの機能を含める必要があり、完全な例外スタックトレース –
を含めてください、例えば、いくつかの余分なチェックを行う必要がある場合があります。 プライベート静的BigDecimalをパース(String str)文字{ 文字列を正規化=「」; if(str == null){ 正規化された= "0"; } else { 正規化= str.replaceAll( "\\ s"、 "").replace( '、'、 '。'); } return新しいBigDecimal(正規化された); – Squero27
コメントは使用しないでください** **あなたの質問を編集してください。また、スタックトレースに完全な例外メッセージをポストします。 –