我有一个主要的方法正在调用类方法。
CourseListQ2 list = new CourseListQ2();
list.addCourse(new Course("Structure and Modelling", "Chemistry", 1));
list.addCourse(new Course("Design in Engineering", "Engineering", 1));
......
在我写的这个类中,我从main方法创建了一个对象数组,然后对其进行了扩展并删除了不需要的值。然后,我编写了一种toString
方法,该方法假定将新行返回每个对象:
public String toString(){
return Arrays.toString(arrayCourses) ;}
但是,它将在一行上返回整个数组。很明显,我误解了这种方法的确切作用。
我有两个想法,或者我想尝试将每个对象作为对象返回,例如getName()。toString(arrayCourses)+ getYear()。toString(arrayCourses)+“ \ n”,
或者,也许我想创建一个添加新行的循环。但是我认为这违背了使用该toString
方法的目的,并且仍然在输出的开头返回“ [”。
那么,有谁能解释为什么会这样,也许会建议一个更好的方法?
我误解了此方法的确切作用。
Arrays.toString
将数组格式化为单个String
,并用逗号分隔各个元素的字符串表示形式。
我想尝试将每个对象都返回为一个对象,例如
getName().toString(arrayCourses) + getYear().toString(arrayCourses) + "\n"
这不会完全解决问题,因为插入的逗号Arrays.toString
将保留在那里。通常,'\n'
在toString
实现中附加一个好主意,因为它假设调用方将使用字符串的方式。
或者,也许我想创建一个添加新行的循环。
那是一个更好的主意。使用StringBuilder
,并append
两次调用其方法-首先是对象,然后是\n
字符。
注意:不是'\n'
直接附加,而是System.getProperty("line.separator");
用于获取系统特定的行分隔符。
StringBuilder res = new StringBuilder();
String newLine = System.getProperty("line.separator");
for (Course c : arrayCourses) {
res.append(c);
res.append(newLine);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句