Integer.parseInt();函数,可以将数字字符串转换为数字。
具体用法如下:
package shiyanyi;
public class shiyanyi {
public static void main(String[] args) {
String s="123";
int num=Integer.parseInt(s);
System.out.println(num);
}
}
运行结果:
123
当需要将一串数字字符串转换为数字时,可以搭配substring().一起使用
substring()函数可以用来截取字符串
beginIndex:字符串的起始位置 endIndex:字符串的结束位置
可直接截取字符串指定的起始位置和结束位置。
下面贴一个
substring()和Integer.parseInt 使用的实例
身份证校验位和信息提取。
输入18位身份证号码的前17位,计算身份证的校验位并提取出生年、月、日及性别信息。
18位身份证号码:前6位是地址码,随后8位是出生日期码,再往后3位是顺序码(奇数分配给男性,偶数分配给女性),最后一位是校验码。
校验码的计算方法:先对前17位数字加权求和S=Sum(A[i]*W[i]), i=0,1,...,16. A[i]表示身份证的第i位数字,W[i]表示第i位的加权因子。分别为W[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}。计算除以11的余数:y=S%11,得到对应的校验码v[11]={‘1’,‘0’,‘X’,‘9’,‘8’,‘7’,‘6’, ‘5’,‘4’,‘3’,‘2’}。
package homework;
import java.util.Scanner;
public class homework {
public static void main(String[] args) {
Scanner scanner = new Scanner (System.in);
System.out.println("请输入身份证前17位号码");
String s1 = scanner.nextLine();
int []w={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
String year = s1.substring(6,10);
System.out.println("出生年:"+year);
String month = s1.substring(10,12);
System.out.println("出生月:"+month);
String day = s1.substring(12,14);
System.out.println("出生日:"+day);
String num;
int shuzi;
num = s1.substring(16, 17);
shuzi = Integer.parseInt(num);
System.out.println(shuzi);
if(shuzi%2!=0) System.out.println("性别:男");
else System.out.println("性别:女");
int sum=0;
for(int i=0;i<17;i++)
{ int j=i+1;
String single = s1.substring(i,j);
sum+=Integer.parseInt(single)*w[i];
}
sum%=11;
System.out.println("检验数为:"+sum);
}
}