- ベストアンサー
悩んでます・・
JavaのParseIntなんですけど、前後に空白があるとエラーになるのをそうならないようなプログラムにすることはできますか?文字列中で見つかった最初の数字から連続する数字のみを処理できれば結構です。前後の空白、数字でない文字は無視して、もし数字と認識できない場合は、メッセージを出すとともに、数字0として読み込んでください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
もうちょっと詳しく書きましょうか? 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.変数【答え】を戻り値として復帰する
その他の回答 (4)
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 try{} でtrim()したものをParseInt()してみて、 エラーだったらcatch{}で0にすればいいだけだと・・・。 ダメですか? (^^ゞ
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
トリムしたり、数字以外の文字を取り除いてから ParseIntすればいいんじゃないですか?
- ngsvx
- ベストアンサー率49% (157/315)
ほとんど丸投げですね。 どこがわからないのかを、記述してください。 丸投げはいけませんよ。 http://oshiete.goo.ne.jp/ask/guide02.html 以下引用 ・[作成依頼目的]占いや翻訳、文章作成等で、疑問点を明記せずに回答者に作業を求める質問。 http://oshiete.goo.ne.jp/ask/guide02.html より
正規表現なりループなりで検査するのが一番近道です。 純粋に前後のスペースだけを削除すればいいんだったら、トリミング関数を使えばいいだけのことですけど。
補足
わかりました。以後気をつけます・・。