读取字符串的相关知识

 1、字符读取

 

eg:读取身份证的第17位;当前位置为奇数,是男生;当前位置是偶数,是女生。

        input:身份证

        output: Boy  或者 Girl

以下有三个方法

1、转化为字符数组,枚举奇数或者偶数进行对比。

        这里用到了两种方式。转化后读取数组、直接读取字符串对应位置字符

        第二个注意的点是条件语句的条件,两个表达方式,字符或是数字,但是这里是ASCII码。

        0--->48     9--->48+9即57

import java.util.Scanner;

public class 身份证17位 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String idcard = sc.next(); // 读取身份证
		
		char[] s = idcard.toCharArray(); 
		System.out.println(s[16]);    // 下标索引是从0开始,故16即17位数
		// 0--->48   9--->48+9
		if(s[16]=='1'||s[16]=='3'||s[16]=='5'||s[16]=='7'||s[16]==48+9) {
			System.out.println("Boy");
		}else {
			System.out.println("Girl");
		}
		
		if(idcard.charAt(16)=='1'||idcard.charAt(16)=='3'||idcard.charAt(16)=='5'
				||idcard.charAt(16)=='7'||idcard.charAt(16)==48+9) {
			System.out.println("Boy");
		}else {
			System.out.println("Girl");
		}
	}
	
}

 2、这里是转化为int整型。两种方式,利用减去‘0’,得到位置差,也就对应着数字

        另一种方式是通过Integer类的valueOf函数或者parseInt函数得到值。

import java.util.Scanner;

public class 身份证17位 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String idcard = sc.next();
		
		int n = idcard.charAt(16)-'0';
		int m = Integer.valueOf(idcard.substring(16,17));

		System.out.println(n/2==0?"Boy":"Girl");
		System.out.println(m/2==0?"Boy":"Girl");
	}
	
}

3、字符串的两种查询方式;

        一是可以通过indexOf获取子字符串是否在字符串,如果没有一样的子串,会返回-1;

        另一是可以通过contains 返回布尔类型,存在子串为true。

import java.util.Scanner;

public class 身份证17位 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String idcard = sc.next();

		
		String pos17 = idcard.substring(16,17);
		System.out.println("13579".indexOf(pos17)==-1?"Gril":"Boy");
		System.out.println("13579".contains(pos17)?"Boy":"Girl");
	}
	
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值