我想将日期数组(myDates)中的每个日期对象打印到屏幕上。 日期类具有月,日和年的值。
private static void printDates(Date[] myDates) throws IOException {
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
if(myDates.length == 0) {
System.out.println("There are no dates to print.\n");
}
else {
System.out.println("Print the dates to the screen or to a file?");
System.out.println(" 1. Print to screen.");
System.out.println(" 2. Print to a new file.");
System.out.print("Choice: ");
int option = input.nextInt();
System.out.println("");
if(option == 1) {
for(int i = 0; i < myDates.length; i++) { //Is this necessary?
//Don't know how to print array of objects with toString method in date class.
}
我认为它与日期类的get和set方法有关,但不太确定如何正确地执行这些操作。
public String getDate() {
return "" + month.getMonth() + " " + day.getDay() + " " + year.getYear();
}
public void setDate(Date date) {
//maybe make a date string then this.date = date; ???
}
或许您可以使用日期等级&#39; toString方法?这可能不正确。
public String toString(e) {
return getMonthWord(day.toString()) + " " + month.toString() + " " + year.getYear();
}
答案 0 :(得分:1)
我想在日期数组(myDates)中打印每个日期对象 屏幕。
首先,对于toString()
方法,您无需传递参数,因为您已经说过您创建的toString()
方法确实不正确。
改变这个:
public String toString(e) {
return getMonthWord(day.toString()) + " " + month.toString() + " " + year.getYear();
}
到此:
public String toString() {
return this.day + " / " + this.month + " / " + this.year;
}
考虑到数组中的每个日期都有toString()
,您可以这样做:
if(option == 1) {
Arrays.stream(myDates).forEach(System.out::println);
}
或使用典型的foreach循环:
if(option == 1) {
for(Date d : myDates) System.out.println(d);
}
基本上,只要System.out.println
调用数组中的任何Date
对象,就会自动为该特定toString()
对象调用Date
方法,你需要的是不要说d.toString()