package com.fqs.demo1;
import java.util.Scanner;
public class StudentTest2 {
public static void main(String args[]) {
//1.新建一个3个长度的数组
Student []arr=new Student[3];
//2.初始化数组
Student s0=new Student("stu000","s0",18);
Student s1=new Student("stu001","s1",19);
Student s2=new Student("stu002","s2",20);
//3.3个值存到数组中
arr[0]=s0;
arr[1]=s1;
arr[2]=s2;
//4.从键盘获取第4个值
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生的id");
String s3id=sc.next();
//将s3id存放到数组中
//5.判断s3id在arr中isFind出现过吗
//6.走到分岔路口,6.1出现过,键盘再次输入 6.2没出现过,存到arr[3]数组中 6.2是必须走的
//6.1
if(isFind(arr,s3id)) {
while(isFind(arr,s3id)){//当isFind为true时,提示再次输入,当isFind为false时停止
System.out.println("请再次输入学生的id");
s3id=sc.next();
if(isFind(arr,s3id)==false) {
break ;
}
}
}
if(isFind(arr,s3id)==false) {//不能是else 因为是顺序执行才对
//6.2分两种情况 获取id非空的个数getNotNull(Student []arr);
//第一种 数组内有空 位置;第二种数组内无位置,需要新增数组
//第一种
int countok=getNotNull(arr);
System.out.println("getNotNull(arr):"+countok);
if(countok<arr.length) {
System.out.println("arr[count].setId(s3id);");
arr[countok].setId(s3id);
}
//第二种
else if(countok==arr.length) {
//1.新建一个arr长度+1的数组arr2
int len=arr.length+1;
System.out.println("arr2的len:"+len);
Student []arr2=new Student[len];
for(int i=0;i<arr.length;i++) {
arr2[i]=arr[i];
}
System.out.println("countok:"+countok);
//先给arr2数组 初始化 数组[下标]关联Student
Student sok=new Student();
//将sok赋值给arr2[3]
arr2[countok]=sok;
//赋值数组[下标]里 id属性
arr2[countok].setId(s3id);
//8.打印数组arr2
for(int i=0;i<arr2.length;i++) {
Student sok2=arr2[i];
System.out.println("arr2:"+sok2.getId()+" "+sok2.getName()+" "+sok2.getAge());
}
}
}
//7.打印数组arr
for(int i=0;i<arr.length;i++) {
Student s=arr[i];
System.out.println("arr:"+s.getId()+" "+s.getName()+" "+s.getAge());
}
}//结束主方法
//1.isFind 方法 获取boolean
//2.传入(Student[]arr,String s3id)
//3.有返回值
public static boolean isFind(Student[]arr,String s3id) {
for(int i=0;i<arr.length;i++) {
if(arr[i].getId()!=null&&arr[i].getId().equals(s3id)) {
return true;
}
}
return false;
}
//1.getNotNull 方法 获取int 数
//2.传入(Student[]arr)
//3.有返回值个数
public static int getNotNull(Student []arr) {
int count=0;
for(int i=0;i<arr.length;i++) {
if(arr[i].getId()!=null) {
count++;
}
}
return count;
}
}