• 締切済み

カンマ区切りの数値文字列を数値に変換

JSPで数値を入力して、データベースへ更新するプログラムを作成しています。 入力はカンマありでもなしでも通すようにしたいと思っています。 しかも、カンマの位置は特にチェックせずにしたいのです。 ちゃんとしたカンマ区切り数値なら、NumberFormatで数値変換できますよね? データベースの数値を表示する際にもカンマ区切り数値にしますので、1桁目を削除した場合には、カンマの位置が違ってきますよね。 そのためにカンマの位置は意識しないでいきたいのです。 StringTokenizer という便利なクラスがあったので使用してみたのですが、インスタンスを生成した後、トークン分をループで回して文字列を連結する必要がありますよね。 もっとスマートに一発で変換できないでしょうか? 「ある文字列からデリミタを省いた文字列を返すメソッド」みたいな。 よろしくお願いします。

  • rally
  • お礼率61% (339/553)
  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

回答No.1

FormatNumberってちゃんとしたカンマ区切り数値でなくても数値変換してくれませんか? 1.4で試すと"1,2,3"なんてのも123にしてくれてしまうのですが。 (ちなみに1.4でStringにreplaceAllなんてのが追加されているのでreplaceAll(",","")一発です)

rally
質問者

お礼

FormatNumber はそこまでやってくれるのですか。 勝手にできないと思い込んでいました。(^^; あと、開発環境はJDK1.3なので、replaceAllは使えないですね。残念。

関連するQ&A

  • PHPでカンマ区切り文字列を数値に変換するには

    PHPでカンマ区切り文字列を数値に変換するにはどうすればいいのでしょうか。 例)$a="12201,11912"が文字列を認識されるのですが数値認識させたいです。 以上よろしくお願いします。

    • ベストアンサー
    • PHP
  • カンマの含まれる文字列の数値変換方法について

    VB.NETでプログラミングしています。 String型の文字列を Double型の数値に変換するときに 一般的にはVal関数を使いますが、 カンマが含まれる文字列"111,111"を 数値変換したい場合には単純にVal関数を 使用しただけではうまくいかないようです。 上の例で数値変換すると"111"になってしまうようです。 そこで質問なのですが、 何か簡単にできるうまい方法はないでしょうか? 関数があればご教示ください。 以下、Val関数の説明の抜粋です。 解説 文字列中に数字以外の文字が見つかると、Val 関数は読み込みを中止します。円記号 (\) やカンマ (,) など、通常は数値の一部と見なされる記号や文字も、Val 関数は数値として解釈しません。

  • カンマ区切りの文字列を検索する

    「1,2,3,5,10…」のようにカンマ区切りになっている文字列が格納されているカラム(number)があり、その文字列に含まれている数字と検索用配列「1,2,3」と比較して存在すれば抽出するみたいなことがやりたいのですがよくわかりません。 カンマ区切りではなく単一の数字であれば select * from tests where number IN(1,2,3); みたいな感じでnumberがIN()のなかにあるかどうかで抽出できると思うのですが、この場合はどのようにすればよいのでしょうか。 ちょっと説明が下手でわかりづらいかと思いますがよろしくおねがいします。

    • ベストアンサー
    • MySQL
  • EXCEL・月日のつもりで入力された文字列(数値)を年月日に変えるには

    A列に月日のつもりで入力された次のような文字列(又は数値)があります。これをB列に年月日に変換表示したいのですがその方法(関数)をご教示ください。(年月日の表示形式は不問。) なお、「年」を意味する文字列がないので、変換する場合、4.1から12.31までは2006年4月1日から同年12月31日まで、1.1から3.31までは2007年の1月1日から3月31日とします。 はじめデータ・区切り位置コマンドを使おうと思ったのですが、コンマの位置が不揃いでうまく行きませんでした。また入力した者が例えば3月1日を意味する文字列(または数値)をあるときは「3.1」あるときは「3.01」のようにまちまちに入力していて、それも作業が面倒な一因となっています。 A     B(変換表示したい年月日「例」) 4.8   2006/4/8 5.03   2006/5/3 7.28    2006/7/28 12.1    2006/12/1 1.07     2007/1/7 2.15    2007/2/15

  • access2000 クエリで文字列を数値に変換

    access2000 クエリで文字列を数値に変換 商品の管理DBをaccessで入力し、テーブルをexcelにエクスポートして並び替えやその他の編集をしています。 テーブルに「数量」というフィールドがあり、数字入力が主ですが、商品によっては「無制限」や「-」のように文字列を入力しなければならない為、「数量」は「数値型」ではなく「テキスト型」になっています。 excelへエクスポートした時に、「10」などは数値として認識させ、「無制限」などはそのままの文字列にしたいです。 クエリの式に「Val([数量])」としてみたところ、「10」は数値として変換されましたが、数値ではない文字列は全て「0」になりました。 また、「15,000」は「15」になりました。(カンマが文字列な為) これを 「10」→「10」(数値) 「無制限」→「無制限」(文字列) 「15,000」→「15000」(数値) にするような関数はありませんでしょうか。 excel2007のエラー処理(セルを選択した時に出る「!」で「数値に変換する」)と同じような挙動にしたいです。 宜しくお願いします。

  • csvカンマ区切りデータに=""を入力したい

    csvカンマ区切りデータに、例えば、 ="00",="123",="456" といった感じで入力したいのです。 大元のcsvカンマ区切りデータで、 00,123,456 が入っているので、これをExcelを使ってText変換や書式設定で文字列にして みたのですが、csvデータとしては=""としては保存されていないのです。 どなたか、こういった型変換に詳しいかたご連絡をお待ちしています。

  • ポインタを使用 [数字列を数値に変換]

    カンマ(,)区切りの数字列を ポインタを使って 数値に変換したいのですが、わかりません。 教えてください。お願いします。 char data[]="5436,434";

  • 数値を文字列に変換

    文字列を数値変換する関数はありますが、逆に数値を文字列に変換するにはどうやればよいのでしょうか?

  • 文字列入力したものを数値に変換したい

    excel2007です。 数値を文字列で入力したものを 通常の数値に変換するには どうすれば宜しいのですか。 四則演算ができるようにしたいのですが。

  • Excelでカンマ区切りの文字列をセルに分割する?

     住所録をExcelにコピーしたら、 カンマ区切りに一つのセルに入ってしまいました。 ◇カンマごとに一つのセルに分割して文字列を分ける。 ◇氏と名の間は半角スペースでカンマでは有りませんが、   二つのセルに分ける。 上記について分ける関数を教えてください。    

専門家に質問してみよう