用java通过键盘输入若干个学生信息,直到输入井号结束

如题所述

    首先:分析题目需求,关联需要的技术支持

          需求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

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-27
import java.util.Scanner;
class test {
public static void main(String[] args){
Scanner a = new Scanner(System.in);
String student = a.next();
char end = student.charAt(student.length()-1); //提取出输入的字符串最后的一个字符
while(end != '#'){ //判断最后一个字符是否为#, 不是的话就循环
student = student + a.next(); //继续停留输入
end = student.charAt(student.length()-1); //继续提取,然后又回到while循环条件判断,就这样一直判断
}
System.out.println(student.substring(0,studens.length()-1));
//打印输入的信息
}
}

本回答被提问者采纳
第2个回答  2016-01-10
import java.util.Scanner;
public class a{
    public static void main(String[] args){
        String name=null;
        int point=0;
        int count=0;
        Scanner s=new Scanner(System.in);
        for(;;){
            count++
            System.out.println("请输入第"+count+"名学生的姓名(输入”#“结束)");
            name=s.next();
            if(name=="#"){
                break;
            }
            System.out.println("请输入第"+count+"名学生的考试分数(输入”#“结束)");
            try{
                point=s.nextInt();
            }catch(Exception e){
                break;
            }
        }
    } 
}