• ベストアンサー

悩んでます・・

JavaのParseIntなんですけど、前後に空白があるとエラーになるのをそうならないようなプログラムにすることはできますか?文字列中で見つかった最初の数字から連続する数字のみを処理できれば結構です。前後の空白、数字でない文字は無視して、もし数字と認識できない場合は、メッセージを出すとともに、数字0として読み込んでください。

質問者が選んだベストアンサー

  • ベストアンサー
  • neko_bus
  • ベストアンサー率100% (2/2)
回答No.4

もうちょっと詳しく書きましょうか? Stringクラスのsubstring(int beginIndex, int endIndex) メソッドを使用して 文字列中で見つかった最初の数字から連続する数字のみを切り出して、切り出した結果にParseIntを実行すればok。(そういう部分が見つからなければ「メッセージを出すとともに、数字0として読み込んでください。 」の処理をします。) ParseIntを使わないとすると、ロジックはこんなところです。参考URLのプログラムを理解していれば、あとは自分で書けると思いますよ。 1.Stringクラスのtrim()メソッドを使って、文字列の両端から空白を削除する 2.文字列をchar[]型の配列にセットする 3.変数【答え】を0で初期化する 4.char[]型の配列の先頭から順に調べて、最初に数字が出てくる位置を調べる 5.char[]型の配列の最後まで、以下の処理を繰り返す 5-1.char[]型の配列の中身が数字でなければ変数【答え】を戻り値として復帰する 5-2.変数【答え】を10倍する 5-3.char[]型の配列の中身に応じて、変数【答え】に0~9を加算する --(ここまで繰り返し)-- 6.変数【答え】を戻り値として復帰する

参考URL:
http://okweb.jp/kotaeru.php3?q=1047220

その他の回答 (4)

回答No.5

こんにちは。 try{} でtrim()したものをParseInt()してみて、 エラーだったらcatch{}で0にすればいいだけだと・・・。 ダメですか? (^^ゞ

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

トリムしたり、数字以外の文字を取り除いてから ParseIntすればいいんじゃないですか?

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

ほとんど丸投げですね。 どこがわからないのかを、記述してください。 丸投げはいけませんよ。 http://oshiete.goo.ne.jp/ask/guide02.html 以下引用 ・[作成依頼目的]占いや翻訳、文章作成等で、疑問点を明記せずに回答者に作業を求める質問。 http://oshiete.goo.ne.jp/ask/guide02.html より

hyokkorri
質問者

補足

わかりました。以後気をつけます・・。

noname#25358
noname#25358
回答No.1

 正規表現なりループなりで検査するのが一番近道です。  純粋に前後のスペースだけを削除すればいいんだったら、トリミング関数を使えばいいだけのことですけど。

関連するQ&A