- PR -

jdbcを使い oracleで取得した値を parseIntするとnumberformatExceptionになる

投稿者投稿内容
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-09-28 08:52
今日は、優子です。

jdbcを使い、oracleのnumber型で取得したString型の値をInteger.parseInt()するとnumberformatExceptionになってしまいます。

org.apache.jasper.JasperException: For input string: "10000"

equals("10000")メソッドで比較してみたのですが、trueが返ってくるので、不思議です。
どのようにしたらよいのでしょうか。ご意見をよろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-09-28 08:57
貼り付けていらっしゃるのは JasperException になっていますが、NumberFormatException はどこででていますか?
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-09-28 09:27
インギ様。お返事ありがとうございます。

java.lang.NumberFormatException: For input string: "10000
"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:477)
java.lang.Integer.<init>(Integer.java:609)
org.apache.jsp.pages.buyGoodsReally_jsp._jspService

発生しているのはjava.lang.Integer.parseInt(Integer.java:477)のコードです。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-09-28 09:36
equals("10000") で true とのことなのでちがうかもしれませんが、何らかの理由で改行コードが入っていると言うことはありませんでしょうか?
>"10000
>"
ってのがちょっと気になります。ペーストしたときの都合かもしれませんが。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-09-28 09:37
インギ様。お返事ありがとうございます。

java.lang.NumberFormatException: For input string: "10000
"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:477)
java.lang.Integer.<init>(Integer.java:609)
org.apache.jsp.pages.buyGoodsReally_jsp._jspService


発生しているのは int intValue = Integer.parseInt(str);の部分です。
String str にDBから取得したnumber型の値を入れています(DBには値10000を入れています)。

それと訂正ですが、equals(str)をやってtrueが帰って来たと言いましたが、よく確認するとfalseが返って来ていました。つまりstrは10000では無いということだと考えられるのですが、
その場合、どのように変換すればよろしいのでしょうか。ご意見をよろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-09-28 09:43
まず、そもそもJDBCで値を取り出してくるときに int でとりだすことはできませんでしょうか?
ResultSet.getInt()かなにかで。

で、上記が無理な場合ですが、改行コードが(?)余計にはいってしまっている文字列を数値に直接変換することはできません。
String のメソッドなり、StringBuffer なりを使って数値だけが含まれる文字列を新しく作る必要がありますね。
優子
常連さん
会議室デビュー日: 2004/03/26
投稿数: 39
投稿日時: 2004-09-28 10:25
インギ様。お返事ありがとうございます。
よく調べるとやはりご指摘通り改行コードがありました。

そこでお伺いしたいのですが、改行コードを削除するにはどのようにすれば良いのでしょうか?Stringクラスのメソッドを当たってみたのですが、それに該当するのが見当たりません。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-28 11:23
引用:

優子さんの書き込み (2004-09-28 10:25) より:
Stringクラスのメソッドを当たってみたのですが、それに該当するのが見当たりません。


str.replaceAll("\r|\n", "");
でどうですか? 「改行コード」にこだわるから見つけられないんですよ。

スキルアップ/キャリアアップ(JOB@IT)