- 締切済み
Javaプログラミングについて
コマンドラインにキーボードで入力した文字をそれぞれの仕様に合わせて作るんですが文字の判別方法が分からなくて困ってます。 (1)半角英数字記号文字10桁(固定) (2)全角文字、半角禁止、250文字まで登録可能@必須 (3)全角文字、半角禁止、250文字まで登録可能@電話番号 (4)半角英数字記号文字ー必須。8桁 (5)全角、半角英数字記号文字混在可。500文字(半角換算)まで登録可能最後の全角文字で、501バイトにならないように注意 以上の5つが仕様です。どなたか教えて下さい。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- isle
- ベストアンサー率51% (77/150)
java.nioパッケージを使って、エンコード後のバイト数を数えるというのはどうでしょう。
- PED02744
- ベストアンサー率40% (157/390)
JAVAの場合、すべてunicodeに変換されてしまうので、charは2バイト固定だったりします。 つまり、「半角」とか「全角」というのは、フォントの文字幅の話であって、文字コードの話とは違うってことです。(JAVAの場合文字コードは全てunicode2バイトだから、SJISな世界でいうとすべて全角扱いってことになるのです) って回答をすると絶対に怒られますので、SJIS換算で1バイト文字にあたる部分とそれ以外の部分に分けてif文で分割して計算するしかないです。
お礼
参考になりました。 回答ありがとうございました。
- fortranxp
- ベストアンサー率26% (181/684)
完璧に仕様を満足するには 結構大変みたいです。 基本はここを参考にして コーディングしてみましょう。 ttp://www7a.biglobe.ne.jp/~java-master/samples/string/ZenkakuAlphabetToHankakuAlphabet.html 簡単に言えばcharAt()で一文字ずつ取り出してその文字が a-zにあるかA-Zにあるか調べさらに 半角アーンにあるか全角アーンにあるかなどど 調べてその条件によって適切な文字に 変換していくことになると思います。
お礼
出来ました 回答ありがとうございました!!
お礼
回答ありがとうございました。