• 締切済み

Javaプログラミングについて

コマンドラインにキーボードで入力した文字をそれぞれの仕様に合わせて作るんですが文字の判別方法が分からなくて困ってます。 (1)半角英数字記号文字10桁(固定) (2)全角文字、半角禁止、250文字まで登録可能@必須 (3)全角文字、半角禁止、250文字まで登録可能@電話番号 (4)半角英数字記号文字ー必須。8桁 (5)全角、半角英数字記号文字混在可。500文字(半角換算)まで登録可能最後の全角文字で、501バイトにならないように注意 以上の5つが仕様です。どなたか教えて下さい。

みんなの回答

  • isle
  • ベストアンサー率51% (77/150)
回答No.3

java.nioパッケージを使って、エンコード後のバイト数を数えるというのはどうでしょう。

JYAGA2001
質問者

お礼

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

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

JAVAの場合、すべてunicodeに変換されてしまうので、charは2バイト固定だったりします。 つまり、「半角」とか「全角」というのは、フォントの文字幅の話であって、文字コードの話とは違うってことです。(JAVAの場合文字コードは全てunicode2バイトだから、SJISな世界でいうとすべて全角扱いってことになるのです) って回答をすると絶対に怒られますので、SJIS換算で1バイト文字にあたる部分とそれ以外の部分に分けてif文で分割して計算するしかないです。

JYAGA2001
質問者

お礼

参考になりました。 回答ありがとうございました。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

完璧に仕様を満足するには 結構大変みたいです。 基本はここを参考にして コーディングしてみましょう。 ttp://www7a.biglobe.ne.jp/~java-master/samples/string/ZenkakuAlphabetToHankakuAlphabet.html 簡単に言えばcharAt()で一文字ずつ取り出してその文字が a-zにあるかA-Zにあるか調べさらに 半角アーンにあるか全角アーンにあるかなどど 調べてその条件によって適切な文字に 変換していくことになると思います。

参考URL:
http://www7a.biglobe.ne.jp/~java-master/samples/string/ZenkakuAlphabetToHankakuAlphabet.html
JYAGA2001
質問者

お礼

出来ました 回答ありがとうございました!!