【问题标题】:Print the index of the array in his toString method在他的 toString 方法中打印数组的索引
【发布时间】:2018-12-29 11:21:30
【问题描述】:

大家好,对不起我的英语,我不擅长写作。

我实际上正在为电影院编写一个预订系统(这是一个大学项目)。我有一个用户的 LinkedList,在里面我放了一个预订座位的 ArrayList。预定座位等级如下:

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 \033[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
]} 

感谢您的帮助!

【问题讨论】:

  • 由于 Booking 类已经实现了 toString,除非您在 User 类中更改 Booking 的 toString 结果,否则无法产生这样的结果。将 Booking : 替换为 Booking <index>:
  • 如果您有幸更改 Booking 的 toString,请删除单词 Booking。然后在 User 类中,您可以将其与索引一起添加

标签: java arraylist linked-list tostring


【解决方案1】:

您必须在 bookedSeat 类中添加一个计数器变量来记录预订的座位数,然后使用 toString 获取它。

bookedSeat:

....your code
private int noOfSeatsBooked;

toString()

String ret="\n \033[31m Booking " + getnoOfSeatsBooked() +  ": day: " + getD() 
+ ", Hall: " + getH() + ", hour: " + getH() + ", seat number: " + 
getSeatNumber() + "\n";
return ret;
} 

使用循环每次增加预订的座位。

【讨论】:

    【解决方案2】:

    您需要将索引添加到UsertoString 中的最后一个字符串,而不是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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多