Arraylist 从 url 中取出最后一个对象。并在最后一个对象中用 a(" ") 替换 append(";"),Java

Arraylist take the last object from url. and replace an append(";") by a(" ") in the last object, Java

下午好,我需要以下方法的帮助,例如,我有一个房间列表,它是用数据打印 URL。只是列表的最后一个数据需要删除作为分隔符的 .append(";") 并将其替换为 (" ") 或删除 ; .仅在最后一个对象(房间)的情况下,

我调查过,但我不知道大小或 lastIndexOf 哪个最好

例子

rooms.get(rooms.size()-1); -->option 1
rooms.lastIndexOf(room); --> option 2

url 如下, https://hotel.google.net/hotels/ytd.proba.miami,2/MIA/XXXXX-XXXXX/1DR;1DR;?token=Ws2QmzjsxDFC7jeN&

我只需要最后 1DR 就没有;只是最后一个。如果我遗漏了更多信息,请告诉我。非常感谢

   private String getFormattedRooms(List<HotelRoom> rooms) {
        StringBuilder formattedRooms = new StringBuilder();
        for (HotelRoom room : rooms) { 
    
formattedRooms.append("1").append(getSupplierRoomType(room)).append(getChildrenAges(room)).append(";");
        }
        return formattedRooms.toString();
    }

您实际构建的是一系列由 ';' 连接的字符串,那么为什么不构建每个字符串然后连接它们呢?

使用流,例如:

rooms.stream()
     .map(room -> "1" + getSupplierRoomType(room) + getChildrenAges(room))
     .collect(Collectors.joining(";"));

没有流:

private String getFormattedRooms(List<HotelRoom> rooms) {
    List<String> roomStrings = new ArrayList<>();
    for (HotelRoom room : rooms) { 
        roomStrings.add("1" + getSupplierRoomType(room) + getChildrenAges(room));
    }
    return String.join(";", roomStrings);
}