摘自www.mylinux.com.cn
这是鄙人写的一个方法,用过身份证号来判别出用户的性别。
@value为用户输入的身份证号。
我只知道身份证号码最末尾一个数字为奇数时,性别为男;为偶数时,性别为女。
但是有些特殊情况比如最末尾一个数字为字母的情况,我现在只遇到两种情况时,
一个为X一个为E,都是男性,所以我作为特别情况给判断啦,各位兄弟姐妹们,你
平常们碰到类似的情况吗,通过身份证号来判断性别的?赶紧帮帮我啊,因为我不
知道最末尾一个为其他字母的身份证号的用户的性别,各位知道的帮帮我,留言吧
,本人在这里先行谢过啦!
public String execute(String value)
{
value = value.trim();
if (value == null || (value.length() != 15 && value.length() != 18))
{
return "";
}
if (value.length() == 15 || value.length() == 18)
{
String lastValue = value.substring(value.length() - 1, value.length());
int sex;
if (lastValue.trim().toLowerCase().equals("x")||lastValue.trim().toLowerCase().equals("e"))
{
return "先生";
}
else
{
sex = Integer.parseInt(lastValue) % 2;
return sex == 0 ? "女士" : "先生";
}
}
else
{
return "";
}
}
完毕!
----------------解决方案--------------------------------------------------------
你傻的 最后个是偶数的是男的
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
我以前也这样认为的,可是看到有些不对啊!有的男的最后一位也是偶数啊!
----------------解决方案--------------------------------------------------------
最后一位是基数的是男的
----------------解决方案--------------------------------------------------------
哈哈,我知道
以前15位的老身份证号中,最后一位是男女的位数,是偶数则是女的,是奇数则为男的
而现在新的18位身份证号中,就变成了倒数第二位是性别分辨号了,同样,偶数是女的,奇数是男的
----------------解决方案--------------------------------------------------------
版主说得对啊!实际问题最好先做好统计!
----------------解决方案--------------------------------------------------------
我的怎么是18呢
难道把我当女的了!!!!!!!!!!!!!!!!!!!??????????????????????
----------------解决方案--------------------------------------------------------
我的怎么是18呢
难道把我当女的了!!!!!!!!!!!!!!!!!!!??????????????????????
你(的倒数第二位是偶数&&你的号码是18位)吗?
----------------解决方案--------------------------------------------------------
看错了
以为是倒数两位
----------------解决方案--------------------------------------------------------