输入一批考生的的准考证号码,如果是 15 位,表示输入正确,否则重新输入。然后判断这个人的考试类别(号码中如果是以奇数结尾则考试类别为“A 类”,否则为“B 类”),最后输出此准考证的前 5 位和后 4 位,其他位用“*”来代替。说明:使用 StringBuffer 类的相关方法完成实验内容。

因为是一批考生,所以先创建一个字符数组存放一组准考证号.

此外这个程序涉及到包装类与基本数据类型的互相转换.

string的substring方法,返回一个字符串是该字符串的子串.从第一个参数开始,第二个参数结束

 1 import java.util.Scanner;
 2 public class Test5_2 {
 3 public static void main(String[] args){
 4 System.out.print("输入考生个数:");
 5 Scanner in=new Scanner(System.in);
 6 int n=in.nextInt();
 7 String []array=new String[n];
 8 System.out.println("输入准考证号:");
 9 for(int i=0;i<n;i++){
10 String s=in.next();
11 while(s.length()!=15){
12 if(s.length()==15) {                    //如果一次输入正确就跳出判断是否为15位的循环,进入下一个字符串的输入
13 System.out.println("输入正确");
14 break;    
15 }
16 System.out.println("准考证号不是15位,请重新输入:");
17 s=in.next();    
18 }
19 array[i]=s;    //将字符串存放到数组中
20 }
21 for(int i=0;i<n;i++){
22 long it=Long.parseLong(array[i]);//字符串转换为整数
23 int tail=(int)it%10;//取尾数
24 System.out.print(array[i]);//输出已输入的所有字符串
25 if(tail%2==0)//判断尾数是否为奇数
26 System.out.print(" 该考生的考试类别为B类");
27 else
28 System.out.print(" 该考生的考试类别为A类");
29 String stemp1=array[i].substring(0,5);//输出前5位
30 String stemp2=array[i].substring(11,15);//输出后4位
31 System.out.println(" 该考生准考证为:"+stemp1+"******"+stemp2);
32 }
33 }
34 }