不知道你们需要用什么知识来求解,我给你写最基础的算法来解决吧。
自己缩进吧。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
char[]card=new char[18];
Scanner input=new Scanner(System.in);
System.out.println("请输入一个18位身份证号码:");
String s=input.next();
if(s.length()!=18){
System.err.println("输入错误:要求输入的身份证号码为18位");
return;
}
for(int i=0;i<card.length;i++){
card[i]=s.charAt(i);
if(i==18){
if((card[i]<='9'&&card[i]>='0')||card[i]=='x'){
System.out.println("身份证号码输入无误!");
}
}else if(card[i]>'9'||card[i]<'0'){
System.err.println("身份证号码输入有误!");
return;
}
}
//第一种方法:直接用字符的1,3,5,7,9.代表奇数,剩下的0,2,4,6,8代表偶数。
switch(card[17]){
case 1:
case 3:
case 5:
case 7:
case 9:
System.out.println("主人性别为:男");
break;
default:
System.out.println("主人性别为:女");
}
//第二种方法:把字符类型自动转换成int类型,进行奇数偶数的判断。
//字符'0'到'9',对于的数字是48到57,奇数偶数关系是一致的。直接判断就可以了
if(card[17]%2==0){
System.out.println("主人性别为:女");
}else{
System.out.println("主人性别为:男");
}
}
}