Список Arrary при создании buildin - PullRequest
0 голосов
/ 23 октября 2018
package uk.ac.reading.Nischal.buidlingconsole;

import java.util.ArrayList;

public class Building {


    private int xSize = 10;             // size of building in x
    private int ySize = 10;             // and y
    private static String test;
    StringSplitter bigBox;
    private static  ArrayList<Room> allRooms;       // array of rooms


    public Building(String build) {
        setBuilding(build);
    }

    public void setBuilding(String bS) {

        // allRooms.clear();
        allRooms= new ArrayList<Room>();


        bigBox = new StringSplitter(bS, ";");
        String first = (bigBox.getNth(0, ""));
        StringSplitter sizeXY = new StringSplitter(first, " ");
        xSize = Integer.parseInt(sizeXY.getNth(0, ""));
        ySize = Integer.parseInt(sizeXY.getNth(1, ""));
        //test = bigBox.getNth(3, "");

        for(int i = 0; i < bigBox.numElement(); i++){
            String r = (bigBox.getNth(i, ""));
            allRooms.add(new Room(r));
        }

    }

    public String toString(){
        String res = "Building size " + xSize + "," + ySize + "\n" ;
        String s = "";
        for (Room r : allRooms) 
            s = s + r.toString() + "\n";



        return res + s;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Building b = new Building("11 11;0 0 5 5 3 5;6 0 10 10 6 6;0 5 5 10 2 5");  // create 
        System.out.println(b.toString());
        System.out.println(test);

    }
}

Я пытаюсь создать здание, передавая строку вида, 11 11;0 0 5 5 3 5;6 0 10 10 6 6;0 5 5 10 2 5, но я получаю неизвестные ошибки

Мне сказали, что я должен использовать список массивов, и здесьЯ пытался сделать это, но получаю странные ошибки.

1 Ответ

0 голосов
/ 24 октября 2018

Надеюсь, я правильно понял, что этот StringSplitter выполняет почти то же самое, что и метод split из String.

Из-за условия, что 0-й элемент bigBox содержит xSize иySize, я думаю, что ваш цикл должен начинаться с 1, а не с 0.

    for(int i = 1; i < bigBox.numElement(); i++){
        String r = (bigBox.getNth(i, ""));
        allRooms.add(new Room(r));
    }

Было бы полезно, если бы вы могли отображаться как журналы ошибок.

...