मैं जावा अभ्यास कर रहा हूं जिसने मुझे एक टूस्ट्रिंग विधि लिखने के लिए कहा है, लेकिन मैं ऐरेलिस्ट के वापसी मूल्य से फंस गया हूं। अधिक निर्देश के लिए, कृपया toString भाग की टिप्पणी पढ़ें।

import java.util.ArrayList;
import java.util.Arrays;

public class Student {
    /** The student's name */
    private String name;
    /** Course codes which the student is enrolled in */
    private ArrayList<String> courses;

    /** Creates a new student with the given name.
     * @name the student's name
     */
    public Student(String name) {
        this.name = name;
        this.courses = new ArrayList<String>();
    }

    /** Enrol in a course.
     * @param course course code of the course being enrolled in. e.g. CSSE2002
     */
    public void addCourse(String course) {
        this.courses.add(course);
    }

    /**
     * Returns the human-readable string representation of this student.
     * The format of the string to return is
     * "'name': courses='courseCodes'" without the single quotes,
     * where 'name' is this student's name and 'courseCodes' is a comma-separated
     * list of this student's enrolled courses.
     * For example, if the student is enrolled several courses:
     * "John Smith: courses=CSSE2002,DECO3801".
     * If the student is enrolled in one course: "John Smith: courses=CSSE2002".
     * If the student is not enrolled in any courses: "John Smith: courses=NO_COURSES".
     * @return string representation of this student
     */
    public String toString() {
        
        Boolean CheckArray = courses.isEmpty();
        if(CheckArray == true){
            return this.name + ":" + " courses=NO_COURSES";
        }else{
            return this.name + ":" + " courses=" + this.courses;
        }
        
    }
}

प्रोग्राम चलाते समय मैं अपने परीक्षण मामलों में यह त्रुटि रखता हूं, छवि विवरण दर्ज करें  यहाँ

मुझे नहीं पता कि अतिरिक्त [] की सवारी कैसे करें, यह एक मूर्खतापूर्ण प्रश्न की तरह लगता है और अगर कोई मदद कर सकता है तो अच्छा होगा। शुक्रिया!

0
HY2000 5 सितंबर 2021, 11:24

2 जवाब

सबसे बढ़िया उत्तर

कोड टिप्पणियों के मुताबिक, टेस्ट केस आउटपुट की अपेक्षा करते हैं जैसे कि:

John Smith: courses=CSSE2002,DECO3801

आप String.join सीमांकक के साथ पाठ्यक्रम कोड में शामिल होने के लिए ,:

return this.name + ":" + " courses=" + String.join(",", this.courses);
2
Sweeper 5 सितंबर 2021, 08:33

एक संभावित समाधान यह है कि कोष्ठकों को एक खाली स्ट्रिंग से बदलकर this.courses के आउटपुट को प्रारूपित किया जाए।

return this.name + ":" + " courses=" + Arrays.toString(this.courses).replace("[", "").replace("]", "");
0
Timor 5 सितंबर 2021, 08:36