0

在我的代码中,我想访问数组第一个元素 CIS 400 并检查它是否等于提供的字符串,但它正在访问整个数组对象。谁能给我线索如何做到这一点..谢谢...

 public class Course1 {
      public static void main(String[] args){

         int check=   GetCourseByCourseID("CIS 400");

         if (check==0){
           System.out.print("Don't match");
         }

     }

    private static  int GetCourseByCourseID(String CourseID) {

       for ( int i = 0; i < course.CourseArray.length; i++ ){ 
          if ( CourseID.equals(course.CourseArray[i] )){                   
               return 1;
          }
          else {
              System.out.print(course.CourseArray[1]);  
              return 0;

         }
        // ToDO

       }
       return 2;

   }

   Course1(String string, String string2, int i, String string3, String string4){ 
        CourseID = "CIS 400"; 
        CourseTitle = ""; 
        CreditHours = 0; 
        Description = ""; 
        PrerequisiteCourseID = "";

       };

    }


    class course {
      static Course1[] CourseArray ={

        new Course1 ("CIS 400", "OO Analysis & Design", 4, "Important class", "CIS 110"),

        new Course1 ("CIS 150A" , "VB.NET Programming", 4, "Good Introduction to     programming", "CIS 100") ,

        new Course1 ("CIS 150B", "C# Programming with labs", 4, "Follow-up to CIS 100", "CIS 100")

      };
   }
4

4 回答 4

0

你在构造函数中初始化的变量呢?我想它们是私有类字段?在这种情况下,只需覆盖 Course1 的 toString 方法即可返回 CourseID。

于 2013-10-18T13:33:15.167 回答
0

你的代码有点奇怪。私有字段在哪里声明?否则,我认为您的条件应该是:

if (CourseID.equals (course.CourseArray[i].courseID)
于 2013-10-18T13:34:14.743 回答
0
 10    private static  int GetCourseByCourseID(String CourseID) {
 11   
 12          for ( int i = 0; i < course.CourseArray.length; i++ ){ 
 13             if ( CourseID.equals(course.CourseArray[i] )){                   
 14                  return 1;
 15             }
 16             else {
 17                 System.out.print(course.CourseArray[1]);  
 18                 return 0;
 19            }
 20          }
 21          return 2;
 22      }

您在此代码中几乎没有问题。

第 13 行:将参数courseID与整个Course1对象进行比较。这将始终返回错误。

第 12 行:当您返回ifelse阻塞时,循环将只运行一次。

第 17 行:在这一行中,您在位置打印整个对象1

下面您有可能分析的潜在实现

private static Course1 findCourseByID(String id) {

    for(Course1 course : getCourses()) {
        if(id.equals(course.CourseID)) {
           return course;
        }
     }
     return null;
}
于 2013-10-18T13:52:05.913 回答
0

您正在比较整个数组而不是单个数组元素。If条件需要如下所示才能比较数组的第一个字符串

if ( CourseID.equals(course.CourseArray[i].string ))

CourseArray[i]返回Course1对象。要访问它的属性,请使用CourseArray[i].string但您需要声明它string,我在您的示例中没有看到它。

您已经定义了一个构造函数,Course1但您还需要定义类变量,然后将通过构造函数传递的值分配给类变量

于 2013-10-18T13:22:59.030 回答