int gender = Integer.valueOf(idcard.substring(14, 15));使用“整数。parseInt”用于字符串到整数的转换。
时间: 2024-03-26 12:39:43 浏览: 56
您的问题是关于Java中字符串转整数的转换方式。在Java中,可以使用Integer.parseInt()方法将字符串转换为整数。例如,您的代码可以修改为:
```
int gender = Integer.parseInt(idcard.substring(14, 15));
```
这将把字符串idcard的第14个字符到第15个字符(不包括第15个字符)之间的子字符串转换为整数类型,并将结果赋值给gender变量。需要注意的是,如果子字符串无法转换为整数,则该方法将抛出NumberFormatException异常。
相关问题
使用java编写18位身份证码获取生日,年龄,性别具体功能实现方法
您好!对于您的问题,我可以给您提供一个Java代码示例来获取身份证的生日、年龄和性别信息。请参考以下代码:
```
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class IdCardUtil {
/**
* 通过身份证号码获取出生日期、年龄、性别
* @param idCard 身份证号码
* @return 生日、年龄、性别信息的数组,其中:
* [0]表示生日,格式为"yyyy-MM-dd"
* [1]表示年龄
* [2]表示性别,其中1表示男性,2表示女性
*/
public static String[] getIdCardInfo(String idCard) {
String[] info = new String[3];
if (idCard == null || idCard.length() != 18) {
return null;
}
String birthday = idCard.substring(6, 14);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
try {
Date birthDate = sdf1.parse(birthday);
info[0] = sdf2.format(birthDate);
Calendar cal = Calendar.getInstance();
if (cal.before(birthDate)) {
return null;
}
int yearNow = cal.get(Calendar.YEAR);
int monthNow = cal.get(Calendar.MONTH) + 1;
int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
cal.setTime(birthDate);
int yearBirth = cal.get(Calendar.YEAR);
int monthBirth = cal.get(Calendar.MONTH) + 1;
int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
int age = yearNow - yearBirth;
if (monthNow < monthBirth || (monthNow == monthBirth && dayOfMonthNow < dayOfMonthBirth)) {
age--;
}
info[1] = String.valueOf(age);
int gender = Integer.parseInt(idCard.substring(16, 17));
info[2] = gender % 2 == 0 ? "2" : "1";
} catch (Exception e) {
e.printStackTrace();
}
return info;
}
}
```
使用该方法,您可以方便地获取到身份证的生日、年龄和性别等信息。当然,如果您有其他的问题,也可以随时向我提问哦!
阅读全文