2016-06-09 85 views
-1

創建類學生與下面的屬性數組拆分。在main方法中聲明5個學生對象的數組。初始化此數組。在這個類中聲明另一個方法 - splitStudentArray。這個方法將把學生數組和一個字符當作輸入參數。如果輸入字符爲'o',則此方法將返回具有奇數值標記的學生數組。如果輸入字符是'e',那麼這個方法將返回具有偶數值或標記的學生數組。如果指定了其他字符,它將返回空數組。從main方法顯示返回數組的名稱和標記。Java程序基於標記

我已經做了程序,但它返回的是一個數組的引用。

解決方案: package assignment2;

公共類StudentDemo {

public static void main(String[] args) 

{ 
    Student[] st=new Student[5]; 
    Student st1=new Student(1, "abhi", 200.5); 
    Student st2=new Student(2, "maggie", 200); 
    Student st3=new Student(3, "suraj", 107); 
    Student st4=new Student(4, "naveen", 249); 
    Student st5=new Student(5, "jajan",100); 

    Student[] sts = {st1,st2,st3,st4,st5}; 
    System.out.println("splitStudentArray : " + splitStudentArray(sts, 'o')); 
} 

public static Student[] splitStudentArray(Student[] sts, char ch) 
{ 
    int Marks = 0; 
    if (ch=='o' && Marks == 1 || Marks==3 || Marks==5) 
    { 
    System.out.println("number is odd"); 
    } 

    if (ch=='e'&& Marks == 2 || Marks==4) 
    { 
    System.out.println("number is even"); 
    } 
    return sts ; 

} 

}

類學生 { 私人詮釋rollNo; 私人字符串名稱; 私人雙馬克;

public Student(int rollNo, String name, double marks) 
{ 

    this.rollNo = rollNo; 
    this.Name = name; 
    this.Marks = marks; 
} 


public double getMarks() { 
    return Marks; 
} 


public void setMarks(double marks) { 
    Marks = marks; 
} 


public int getRollNo() { 
    return rollNo; 
} 


public String getName() { 
    return Name; 
} 

}

回答

0

首先,應該不是這是在計算器上,而不是在這裏嗎?

其次 - 如果我理解你想什麼做正確,你splitStudentArray(...),你應該這樣做:

ArrayList<Students> helper = new ArrayList<>(); 
int j = 0; 
    for(int i; i < sts.length; i++){ 
     if(checkIfOdd(sts[i]) == true){ 
     helper[j] = sts[i] 
     j++; 
    } 

,然後返回幫手,而不是STS的。

乾杯

+0

請在不使用數組列表的情況下給出建議 – ASM

+0

好的,我會在有空閒時編輯我的帖子。 – RoughTomato

0

你傳遞「STS」,並返回您傳遞的「STS」同樣的事情。你只是爲了得到一個蘋果而給一個方法一個蘋果。只要保持蘋果。不,你想回來什麼,是你應該回饋的。你只返回「sts」。如果你想返回一些東西,然後返回一些東西,而不是僅僅打印到屏幕上。

 
/** 
* Hint! 
* EVEN: using modulus: if mynumber%2==0 
* This could be useful in returning ODD and EVEN arrays too. 
* 
* @param1 ... 
* @param2 ... 
* @param3 ... 
**/ 
public static Student[] splitStudentArray(Student[] sts, char ch) 
{ 
    int Marks = 0; 
    if (ch=='o' && Marks == 1 || Marks==3 || Marks==5) 
    { 
     System.out.println("number is odd"); 
     //return oddArray(str) create function or insert for loop here 
    } 
    else if (ch=='e'&& Marks == 2 || Marks==4) 
    { 
     System.out.println("number is even"); 
     //return evenArray(str) create function or insert for loop here 
    } 
    else 
     return null; 
}