- 締切済み
数値と文字列の見分け方
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- braver_2004
- ベストアンサー率62% (20/32)
org.apache.commons.lang.StringUtils のメソッド public static boolean isNumeric(String str) を使用するのはいかがでしょうか。
- bgbg
- ベストアンサー率53% (94/175)
簡単な方法は、文字列を元にした数値型のオブジェクトを作ってみることです。 たとえば、Double型のオブジェクトを文字列を渡して作るとき、文字列が数値表現でなければ例外が発生します。 try{ Double d = new Double(str); // 例外が発生しなければstrは数値 }catch(NumberFormatException e){ // 例外が発生したらstrは文字 }
お礼
とてもわかりやすかったです。 ありがとうございます! さっき早速コーディングして試してみたら ちゃんと機能してくれました♪ またいつか困ったときお手伝いよろしくお願いします。
関連するQ&A
- エクセル 文字列で入力した数字を数値にする
エクセルで、文字列の設定で入力した数字は、[セルの書式設定]で、数値として設定しても、文字列のままになります。 (セルの左上に、文字列と分かる緑の三角が付いたままになり、表を作ってもグラフの表示は出来ません。) 数値として数字を入力をした後、[セルの書式設定]で文字列にして、再び[セルの書式設定]で数値にすると、数値にはなります。 (この場合、文字列にしても、セルの左上に緑の三角が付かず、このまま表を作ると数値(小数点以下が0の場合は小数点以下が削除されます。)の扱いとなりグラフの表示が出来ます。) 文字列で入力した数字は、数値にはならないのでしょうか? よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- エクセルで半角数字には数値と文字列がある?
http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?
- ベストアンサー
- その他MS Office製品
- 文字列かどうかの判定
例えばA1セルに入力せれているものが、数字(もしくは文字)であった場合プログラムを実行させようと考えています。 入力されている数字や文字列は一定では有りません。 If 数字(文字)であった場合 Then Call *** end If の様な感じです。 過去ログの文字列検索を探しましたが、使った事の無いコードばかりでアレンジのやり方が全く分かりません。 数字の場合と文字列の場合の2通りの方法をご教示頂きたくよろしくお願い致します。
- ベストアンサー
- Visual Basic
- エクセル2003で数値を文字列に
Windowsのエクセル2003です。 すでに入力されている文字列13桁以上を 文字列に変換できないでしょうか? 入力していくうちに先頭に0が必要な場合も出てきて 困っています。桁数はまちまちなので書式設定でも出来そうにありません。VALUEやTEXTもうまくいきません。 書式で文字列にしても文字化けしてしまいます。 何かいい方法はございませんか?
- 締切済み
- オフィス系ソフト
- 文字列での数値の入力方法
WINDOWS XP EXCELL 2003です。 6桁(200001~299999)の数字を入力をしていますが 例えば 200001 のコードを入力しようとしたときは 現在はそのまま 200001 と入力しています。 これを 1 と入力すれば 200001 と省略して入力する方法はないでしょうか。 下記の2つの方法で試しましたがうまくいきません。 1 ユーザー定義で 200000 と設定 セルに1と入力すると確かに200001となりますが 文字 列 の扱いになりません。 2 A1 = 200000 B1 = 1 で A1+B1=200001 と矢っ張り文字列にはなりません。 文字列を参照している数式が =IF(B7="","",VLOOKUP(B7,商品管理!$A$2:$B$211,2,FALSE)) & "" 何か良い方法で省力化できて入力でき且つ文字列なることは可能でしょうか。 良い方法がありましたらご指導いたたけませんでしょうか。 よろしく御願いします。
- ベストアンサー
- その他MS Office製品
- 文字列が数値に変換されない
文字列の数字をVALUE関数で数値に変換したくても数値になりません。 ♯N/Aと表示されるだけです。 関数を入れたあとに表示形式を数値にしても変わりません。 元の文字列はVLOOKUP関数で検索した数字です。 これができないと仕事が進みません。急いでます。お願いします。
- ベストアンサー
- その他(Windows)
- excelで13桁のJANコードを数値から文字列に
仕事柄、excelで13桁のJANコードを入力することが多いのですが、セルの表示が標準の設定のままだと例えば「4.12345E+12」と表示されます。実は文字列として扱いたいのですが、この入力後のセルの表示形式を文字列に変えても、表示は変わりません。このセル自体をダブルクリックすれば13桁の文字列表示になるのですが、大量のデータを数値のまま受け取る事があるため、できれば一括で処理してしまいたいのです。何か方法はありますでしょうか?
- ベストアンサー
- アンケート
- perl:文字列を数値として変換 警告でないように
ある変数に 文字列として 数値が格納されている。 ノイズがあり、時には その変数に 英字数字のごちゃ混ぜ文字列が入るときがある。 文字列には数字だけが入っている前提で処理すると、時に その場合、Argument "○○"isn't numeric in addition・・・エラーがでてしまう。 このエラーを出力したくない、エラーログファイルに 読込エラーだったレコード内容を吐き出すようにしたい。 文字列が数字のみで構成されている場合は ○○を実行し、数字以外で構成されている場合は XXを実行するという if文を作成したいと考えている。よい判定方法を教えてください。 現在は、 $i=$i+0; if( $i =~ /^\d+$/ ){ ○○} else{ XX}としているが、 $i=$i+0; の行でエラーが出てしまうときがある。
- 締切済み
- Perl
- Excelで数値が文字列になっています
Excel2010で「このセルにある数値がテキスト形式か、またはアポストロフィで始まっています」という警告が表示されたりして、計算が出来ません。 打ち直ししたり、「エラーチェックルール」で「文字列形式の数値、、またはアポストロフィで 始まる数値」のチェックを外したりして計算は出来るようになります。 「表示形式を変えてもセルの中の値は変化しません。数値データは数値のまま、文字列データは文字列のままです。」とは本当ですか? 本当ならば、数字の保存形式が文字列データかどうかを確かめる方法はありますか? なお、ISNUMBERという関数ではTRUEと出ます。
- ベストアンサー
- Excel(エクセル)
お礼
ありがとうございます。 その使い方も色々調べてみようと思います。 協力してくれて本当に感謝です!