• ベストアンサー

「000-000」のような値を扱いたい時の型。

例えば整数「123」などでしたら、int型を使って値を格納すればいいと思うのですが、例えば「123-999」などを扱いたい場合は、どんな型を使うべきでしょうか?やはり文字列型になってしまうでしょうか? 数字以外には「-(あるいは_)」しか使いません。 それらの値をデータベース(MySQL)に入れる予定です。 それらの値はデータベースのID(キー)に使います。 よろしくお願いします。

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

  • ベストアンサー
  • rentahero
  • ベストアンサー率53% (182/342)
回答No.3

> 想定する値は「123-999」だけ考えていただきたいです(_でもいいし、どっちかを使う、という意味でした)。 ということでしたら先の回答の1が該当しますね。 ですから、Int型の変数を2個使うか、または区切り文字を除いた数字のみをStringに格納するのがよいでしょう。 Stringでやりたい場合は、受け取ったデータを検査するときにでも区切り文字をプログラムで削除するのがよいと思います。 よくあるケースでは、郵便番号を入力させる場合に、本来は「桁数7桁固定、リード0あり、3桁目と4桁目の間に区切り文字あり」となるところを 区切り文字なしで000-0000を0000000として入力させるものなどあります。

その他の回答 (2)

  • rentahero
  • ベストアンサー率53% (182/342)
回答No.2

たとえば、123-999と123_999が同じ値であるとみなすかどうかによりますね。 1. 同じ値とする場合 Java側ではint型2個でもよいでしょう。 MySQLのほうではひとつにまとめてCHAR型でもよいですし、INTEGER型2個(2個のカラムの両方をキーにする)でもよいでしょう。 2. 異なる値とする場合 数字以外の文字が入るため、 Java側ではString型になるでしょう。 当然MySQLのほうでもCHAR型でないとまずいでしょうね。 また、上位桁の0の扱いの問題もあります。"011"と" 11"(スペース入り)、または"11"(スペースなし)のいずれか二つ以上が 異なる値となる場合も、1.ではダメですから2.を採用するべきです。

nabewari
質問者

お礼

回答ありがとうございます。 すみません。質問文の書き方が完全に悪かったです。 想定する値は「123-999」だけ考えていただきたいです(_でもいいし、どっちかを使う、という意味でした)。 やはり、String型を使うことになりそうですかね。

  • yaha_2007
  • ベストアンサー率21% (13/61)
回答No.1

構造体は? ってかどーせSQL言語に直すんだから どのみち文字列に変換する処理いるだろうよ

nabewari
質問者

お礼

回答ありがとうございます。

関連するQ&A