需求1:
键盘输入: Scanner扫描器, 可以实现从键盘读取输入
Scanner input = new Scanner(System.in);
需求2:
若干学生信息:说明这是一个不清楚循环次数的输入,可以使用while(true)死循环进行
while(true){
//....输入
}
需求3:
井号结束:说明跳出死循环的条件
while(true){
//....输入
if(输入#){
跳出循环
}
}
java是一门面向对象的语言, 所以写代码,也需要用面向对象的思考方式,学生是一个对象, 应该写一个类 ,拥有姓名name和年龄age属性
学生类
//定义一个学生类
public class Student {
String name;//姓名
int age;//年龄
//构造器
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//为了方便输出,重写toString方法
public String toString() {
return "姓名:"+name+"\t学号"+age;
}
}
Test类
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>();//定义一个学生类
Scanner input = new Scanner(System.in);//创建一个扫描器对象,用于读取从控制台输入
int index = 1;//顺序号
System.out.println("------------说明------------");
System.out.println("1:输入格式:name,age 例如:tom,18");// 注意逗号是半角
System.out.println("2:输入#号则结束输入");
System.out.println("---------------------------");
while (true) {
System.out.println("请输入第" + index + "个学生信息 ");
String str = input.nextLine();//从控制台读取一行
if (str.equals("#")) {//如果输入的是#号,
System.out.println("提示: 已经结束了学生信息的输入");
break;//跳出循环,结束输出
}
String[] info = str.split(",");//用逗号进行切割
String name = info[0];
int age = Integer.parseInt(info[1]);//从字符串转换成整数
list.add(new Student(name, age));//创建个学生对象添加到list里
index++;
}
System.out.println("刚刚成功输入的学生信息");
for (Student student : list) {
System.out.println(student);//输出学生信息
}
}
}
运行测试
------------说明------------
1:输入格式:name,age 例如:tom,18
2:输入#号则结束输入
---------------------------
请输入第1个学生信息
张三,12
请输入第2个学生信息
tom,11
请输入第3个学生信息
jack,12
请输入第4个学生信息
#
提示: 已经结束了学生信息的输入
刚刚成功输入的学生信息
姓名:张三 学号12
姓名:tom 学号11
姓名:jack 学号12