问答详情
源自:6-1 学生选课---判断 List 中课程是否存在

setTest中编译好testListContains方法后

public void testAdd(){

   Course cr1 = new Course();
   cr1.setId("1");
   cr1.setName("JAVA编程");
   coursesToSelect.add(cr1);
   Course temp=(Course)coursesToSelect.get(0);}

public void testListContains(){
   System.out.println("请输入要查询课程的ID:");
   Scanner console=new Scanner(System.in);
   while (true){
       String id=console.next();
       Course course=coursesToSelect.get(id.indexOf(id));
       if (course.getName()==null){
       System.out.println("请重新输入ID");
       continue;
   }
       System.out.println("取得课程"+course.getName());
       System.out.println("备选课程是否含有该课程:"+course.getName()+coursesToSelect.contains(course));
       break;
   }
}

为什么运行结果不正确,输入5,也会出现0位置的结果?

以下是运行结果:

通过迭代器访问:

1JAVA编程

2大学英语

3计算机导论


请输入要查询课程的ID:

5

取得课程JAVA编程

备选课程是否含有该课程:JAVA编程true


提问者:紫金湖人 2016-03-10 10:49

个回答

  • ZYeeC
    2016-03-10 13:15:00

    Course course=coursesToSelect.get(id.indexOf(id));

    这句中,id.indexOf(id)是在id这个字符串中找id的内容的位置,比如说     "5".indexOf("5")返回值自然是0 ,所以出现0位置的结果