在我的代码中,我想访问数组第一个元素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")
};
}
答案 0 :(得分:0)
您正在比较整个数组而不是单个数组元素。 If
条件需要如下所示来比较数组的第一个字符串
if ( CourseID.equals(course.CourseArray[i].string ))
CourseArray[i]
返回Course1
个对象。要访问其属性,请使用CourseArray[i].string
,但您需要声明我在样本中看不到的string
。
您已为Course1
定义了构造函数,但您还需要定义类变量,然后将通过构造函数传递的值赋给类变量
答案 1 :(得分:0)
您在构造函数中初始化的变量怎么样?我想他们是私人课堂?在这种情况下,只需覆盖Course1的toString方法即可返回CourseID。
答案 2 :(得分:0)
你的代码有点奇怪。宣称私人领域在哪里? 否则,我认为你的情况应该是:
if (CourseID.equals (course.CourseArray[i].courseID)
答案 3 :(得分: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
对象进行比较。这将永远返回false。
第12行:当你在if
和else
块中返回时,循环只会运行一次。
第17行:在此行中,您可以在1
位置打印整个对象。
下面是您可能分析的潜在实施
private static Course1 findCourseByID(String id) {
for(Course1 course : getCourses()) {
if(id.equals(course.CourseID)) {
return course;
}
}
return null;
}