前提・実現したいこと
指定のTextFieldに住所を入力していく際に、
全角・半角・ハイフン 以外が入力されたときにエラーボックスを表示したい。
該当のソースコード
public class Error private static final int IS_SUCCESS_CODE = 0; private static final int ERROR_CODE_1050 = 1050; private static final String IS_SUCCESS_MESSAGE = null; private static final String ERROR_MESSAGE_1050 = "住所に全角・半角文字列またはハイフン以外の記号が含まれています。"; public static int getErrCode0() {return IS_SUCCESS_CODE;} public static int getErrCode1050() {return ERROR_CODE_1050;} public static String getErrMsg(int errorCode) { switch(errorCode) { case IS_SUCCESS_CODE: return IS_SUCCESS_MESSAGE; case ERROR_CODE_1050: return ERROR_MESSAGE_1050; default: return ""; } } //入力文字内容チェック(会員登録画面(住所)) public static int ckContent2(String str) { char[] chars = str.toCharArray(); for(int i=0; i < chars.length; i++) { char c = chars[i]; if(!(c >= '0' && c <= '9') && c != '-') { return ERROR_CODE_1050; } } return IS_SUCCESS_CODE; }
試したこと
全角の処理が出来ていないことは、何となく把握しており
何度か試みてみたものの、全角文字列をTextFieldに入力してみてもエラーが出てしまいます。
恐れ入りますが、全角・半角・ハイフン以外が入力されたときにエラーが出るようにできるコードのご教示を頂けますと幸いです。
全角でも半角でも無い文字って、どんなものを想定していますか?
例えばですと?、!マークや%、*などの、通常住所を入力するうえで入らないものです。
そういうのも半角か全角かですね。!は全角、!は半角です。
> 通常住所を入力するうえで入らないもの
ということであれば、あなたの考える「通常住所を入力するうえで入らないもの」を列挙する必要があります。もしくは「通常住所を入力するうえで入るもの」を列挙するか。
マンション名に!とか入ってることは想定しないのでしょうか?
そうなのですね、、学習不足でしっかりと確認していませんでした。
ありがとうございます。
>マンション名に!とか入ってることは想定しないのでしょうか?
勝手な憶測で入らないだろうと考えてしまっていました。
住所入力のコードで何かこうしたほうがいいというものはあったりしますでしょうか?
「同一住所氏名の人が二重登録していないか?」のチェックが必要なら、表記の揺れを統一しないといけないので、難しいですね。
そうでなければ、何もチェックしないのが一番です。
郵便番号を入れると、住所が自動的に入力されるというのが良いですね。
>郵便番号を入れると、住所が自動的に入力されるというのが良いですね。
なるほど!ありがとうございます!
ちなみに参考サイトやこうすればできる等教えて頂くことはできますでしょうか?
> 郵便番号を入れると、
私はやったこと無いです。
ありがとうございます!
頑張ってみます。
私は使ったことないですが、こちらにある郵便番号検索APIを使用すると
手っ取り早いと思います。
http://zipcloud.ibsnet.co.jp/doc/api
以下のサイトにjavaでの使用サンプルがありました。
https://qiita.com/Aptenodytes9/items/979babfbe2553fa44278
尚、日本郵便が公開している公式APIです。
注意点としては、WebAPIなのでオフライン環境では使用できません。
上記ありがとうございます。
また、返事が遅くなり申し訳ありません。
参考にして試してみます!
あなたの回答
tips
プレビュー