import java.util.*;
import java.util.Scanner;
public class javaBean_bd { /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
           List list=new ArrayList();
   Scanner input=new Scanner(System.in);
   //获取用户输入的学生姓名。
   //一、for(int j=0;j<list.size();j++){
   String str="";//定义在循环外面。
   do{
   Student1 stu=new Student1();
 
   System.out.println("请输入学生的姓名:");
    //获取用户输入的学生年龄。
   stu.setUserName(input.next());
   System.out.println("请输入学生的密码");
   stu.setUserPassword(input.next());
   System.out.println("请输入学生的性别");
   stu.setUserSex(input.next());
   System.out.println("请输入学生的班级");
   stu.setUserClass(input.next());
   System.out.println("请输入学生的爱好");
   stu.setHobby(input.next());
   System.out.println("请输入备注");
   stu.setUserRe(input.next());
   //将学生信息存放在集合数组当中。
   list.add(stu);
   System.out.print("是否继续录入?(y/n):");
   str=input.next();
   }while("y".equals(str));
   for( int i=0;i<list.size();i++){
   
   Student1 st=(Student1)list.get(i);
       System.out.println("姓名"+st.getUserName());
       System.out.println("年龄"+st.getUserPassword());
       System.out.println("性别"+st.getUserSex());
       System.out.println("班级"+st.getUserClass());
       System.out.println("爱好"+st.getHobby());
       System.out.println("备注"+st.getUserRe());
      
   }
} }
出现问题:打印输出,输入的字符有空格,后面的字符自动截除。为什么呢。

解决方案 »

  1.   

    Scanner的默认分隔符为空格,可以修改成非空格字符,用Scanner.useDelimiter()设置了就好了!
      

  2.   

    Scanner.next();遇到空格 和换行符 中止
    你可以用 Scanner.nextLine();
      

  3.   

    代码如下,已在Eclipse里测试过了。ok的
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;public class javaBean_bd { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    List<Student1> list=new ArrayList<Student1>();
    Scanner input=new Scanner(System.in);
    //获取用户输入的学生姓名。
    //一、for(int j=0;j<list.size();j++){
    String str="";//定义在循环外面。
    do{
    Student1 stu=new Student1();
      
    System.out.println("请输入学生的姓名:");
    //获取用户输入的学生年龄。
    stu.setUserName(input.nextLine());
    System.out.println("请输入学生的密码:");
    stu.setUserPassword(input.nextLine());
    System.out.println("请输入学生的性别:");
    stu.setUserSex(input.nextLine());
    System.out.println("请输入学生的班级:");
    stu.setUserClass(input.nextLine());
    System.out.println("请输入学生的爱好:");
    stu.setHobby(input.nextLine());
    System.out.println("请输入备注:");
    stu.setUserRe(input.nextLine());
    //将学生信息存放在集合数组当中。
    list.add(stu);
    System.out.print("是否继续录入?(y/n):");
    str=input.nextLine();
    }while("y".equals(str));
    for( int i=0;i<list.size();i++){
      
    Student1 st=(Student1)list.get(i);
    System.out.println("姓名"+st.getUserName());
    System.out.println("年龄"+st.getUserPassword());
    System.out.println("性别"+st.getUserSex());
    System.out.println("班级"+st.getUserClass());
    System.out.println("爱好"+st.getHobby());
    System.out.println("备注"+st.getUserRe()); }
    }
    }