Stringに含まれる文字が半角か全角か知りたいです。
だから私はそのようにテストしました:
/* Checking typing password is valid or not.
* If length of typing password is less than 6 or
* is greater than 15 or password is composed by full-width character at least one,
* it will return false.
* If it is valid, it will return true.
* @param cmdl
* @param oldPassword
* @return
*/
public boolean isValidNewPassword(String password) {
if ((password.length() < 6)
|| (password.length() > 15) || (isContainFullWidth(password))) {
return false;
}
return true;
}
/**
* Checking full-width character is included in string.
* If full-width character is included in string,
* it will return true.
* If is not, it will return false.
* @param cmdl
* @return
*/
public boolean isContainFullWidth(String cmdl) {
boolean isFullWidth = false;
for (char c : cmdl.toCharArray()) {
if(!isHalfWidth(c)) {
isFullWidth = true;
break;
}
}
return isFullWidth;
}
/**
* Checking character is half-width or not.
* Unicode value of half-width range:
* '\u0000' - '\u00FF'
* '\uFF61' - '\uFFDC'
* '\uFFE8' - '\uFFEE'
* If unicode value of character is within this range,
* it will be half-width character.
* @param c
* @return
*/
public boolean isHalfWidth(char c)
{
return '\u0000' <= c && c <= '\u00FF'
|| '\uFF61' <= c && c <= '\uFFDC'
|| '\uFFE8' <= c && c <= '\uFFEE' ;
}
ただし、全角、半角すべての文字でOKというわけではありません。
それで、この問題について何か提案があれば教えていただけますか?
日本語などのアジア言語では、半角と全角が使用されます。
日本語の文字を書く場合、全角と半角の2種類があります。
半角文字 = アデチャエウィオプ</p>
全角文字=アスダファスヂオップ
どうもありがとう!