- - PR -
jdbcを使い oracleで取得した値を parseIntするとnumberformatExceptionになる
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-28 08:52
今日は、優子です。
jdbcを使い、oracleのnumber型で取得したString型の値をInteger.parseInt()するとnumberformatExceptionになってしまいます。 org.apache.jasper.JasperException: For input string: "10000" equals("10000")メソッドで比較してみたのですが、trueが返ってくるので、不思議です。 どのようにしたらよいのでしょうか。ご意見をよろしくお願いいたします。 | ||||
|
投稿日時: 2004-09-28 08:57
貼り付けていらっしゃるのは JasperException になっていますが、NumberFormatException はどこででていますか?
| ||||
|
投稿日時: 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)のコードです。 | ||||
|
投稿日時: 2004-09-28 09:36
equals("10000") で true とのことなのでちがうかもしれませんが、何らかの理由で改行コードが入っていると言うことはありませんでしょうか?
>"10000 >" ってのがちょっと気になります。ペーストしたときの都合かもしれませんが。 | ||||
|
投稿日時: 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では無いということだと考えられるのですが、 その場合、どのように変換すればよろしいのでしょうか。ご意見をよろしくお願いいたします。 | ||||
|
投稿日時: 2004-09-28 09:43
まず、そもそもJDBCで値を取り出してくるときに int でとりだすことはできませんでしょうか?
ResultSet.getInt()かなにかで。 で、上記が無理な場合ですが、改行コードが(?)余計にはいってしまっている文字列を数値に直接変換することはできません。 String のメソッドなり、StringBuffer なりを使って数値だけが含まれる文字列を新しく作る必要がありますね。 | ||||
|
投稿日時: 2004-09-28 10:25
インギ様。お返事ありがとうございます。
よく調べるとやはりご指摘通り改行コードがありました。 そこでお伺いしたいのですが、改行コードを削除するにはどのようにすれば良いのでしょうか?Stringクラスのメソッドを当たってみたのですが、それに該当するのが見当たりません。 | ||||
|
投稿日時: 2004-09-28 11:23
str.replaceAll("\r|\n", ""); でどうですか? 「改行コード」にこだわるから見つけられないんですよ。 |