将字符串转换成数字的方法------Integer.parseInt

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);
		}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值