在他的 toString 方法中打印数组的索引
Print the index of the array in his toString method
大家好,对不起我的英语,我不是很擅长写作。
我实际上是在为电影院编写一个预订系统(这是一个大学项目)。我有一个 LinkedList of Users,在里面我放了一个 ArrayList of booked seat。 bookedSeat Class 如下:
public class bookedSeat implements Serializable {
private Hours h;
private Days d;
private int hallNumber;
private int seatNumber;
//getter&setter and constructor below...
当我显示用户的预订时,我使用 toString 方法:
@Override
public String toString() {
String ret="\n 3[31m Booking " + ": day: " + getD()
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " +
getSeatNumber() + "\n";
return ret;
}
我预订了几个座位后得到了这个输出:
User{Nome=Daniele, Booked Seat: [
Booking : Day: 24, Hall: 1, hour: 20, seat number: 45
,
Booking : Day: 29, Hall: 1, hour: 20, seat number: 24
]}
我现在问用户他想取消哪个预订,我让他写下预订号,这样我就可以保存这个值-1 并删除相关索引(第一个为 1,第二个为 2,等等) ...).
是否有机会从 toString 方法中获取 Booking 的编号?更清楚一点:我想要 toString 的输出:
User{Nome=Daniele, Booked Seat: [
Booking 1: Day: 24, Hall: 1, hour: 20, seat number: 45
,
Booking 2: Day: 29, Hall: 1, hour: 20, seat number: 24
]}
感谢您的帮助!
您必须在 bookedSeat
class 中添加一个计数器变量来记录预订的座位数,然后使用 toString 获取它。
在bookedSeat
中:
....your code
private int noOfSeatsBooked;
在toString()
String ret="\n 3[31m Booking " + getnoOfSeatsBooked() + ": day: " + getD()
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " +
getSeatNumber() + "\n";
return ret;
}
使用循环递增每次预订的座位。
您需要将索引添加到 User
的 toString
中的最终字符串,而不是 BookedSeat
。
// User.toString
@Override
public String toString() {
StringBuilder retVal = new StringBuilder("User{" +
"name='" + name + '\'' +
", bookedSeats=[");
for (int i = 0 ; i < bookedSeats.size() ; i++) {
retVal.append("Booking ");
retVal.append(i + 1);
retVal.append(": ")
retVal.append(bookedSeats.get(i));
retVal.append("\n");
}
retVal.append("]\n}");
return retVal.toString();
}
// BookedSeat.toString
@Override
public String toString() {
return "Hours: " + h +
", Days: " + d +
", Hall Number: " + hallNumber +
", Seat Number: " + seatNumber;
}
大家好,对不起我的英语,我不是很擅长写作。
我实际上是在为电影院编写一个预订系统(这是一个大学项目)。我有一个 LinkedList of Users,在里面我放了一个 ArrayList of booked seat。 bookedSeat Class 如下:
public class bookedSeat implements Serializable {
private Hours h;
private Days d;
private int hallNumber;
private int seatNumber;
//getter&setter and constructor below...
当我显示用户的预订时,我使用 toString 方法:
@Override
public String toString() {
String ret="\n 3[31m Booking " + ": day: " + getD()
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " +
getSeatNumber() + "\n";
return ret;
}
我预订了几个座位后得到了这个输出:
User{Nome=Daniele, Booked Seat: [
Booking : Day: 24, Hall: 1, hour: 20, seat number: 45
,
Booking : Day: 29, Hall: 1, hour: 20, seat number: 24
]}
我现在问用户他想取消哪个预订,我让他写下预订号,这样我就可以保存这个值-1 并删除相关索引(第一个为 1,第二个为 2,等等) ...).
是否有机会从 toString 方法中获取 Booking 的编号?更清楚一点:我想要 toString 的输出:
User{Nome=Daniele, Booked Seat: [
Booking 1: Day: 24, Hall: 1, hour: 20, seat number: 45
,
Booking 2: Day: 29, Hall: 1, hour: 20, seat number: 24
]}
感谢您的帮助!
您必须在 bookedSeat
class 中添加一个计数器变量来记录预订的座位数,然后使用 toString 获取它。
在bookedSeat
中:
....your code
private int noOfSeatsBooked;
在toString()
String ret="\n 3[31m Booking " + getnoOfSeatsBooked() + ": day: " + getD()
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " +
getSeatNumber() + "\n";
return ret;
}
使用循环递增每次预订的座位。
您需要将索引添加到 User
的 toString
中的最终字符串,而不是 BookedSeat
。
// User.toString
@Override
public String toString() {
StringBuilder retVal = new StringBuilder("User{" +
"name='" + name + '\'' +
", bookedSeats=[");
for (int i = 0 ; i < bookedSeats.size() ; i++) {
retVal.append("Booking ");
retVal.append(i + 1);
retVal.append(": ")
retVal.append(bookedSeats.get(i));
retVal.append("\n");
}
retVal.append("]\n}");
return retVal.toString();
}
// BookedSeat.toString
@Override
public String toString() {
return "Hours: " + h +
", Days: " + d +
", Hall Number: " + hallNumber +
", Seat Number: " + seatNumber;
}