2012-07-15 26 views
1

即时通讯正在与java代码的高频斗争。如何将用户输入号码添加到字符串的末尾以选择特定的对象

目前,我有8个房间

room1 = new Room(1,1); 
    room2 = new Room(2,1); 
    room3 = new Room(3,1); 
    room4 = new Room(4,1); 
    room5 = new Room(5,2); 
    room6 = new Room(6,2); 
    room7 = new Room(7,3); 
    room8 = new Room(8,3); 

现在我需要让用户输入一个号码1,使其对8关于他们需要的房间,那么系统需要该号码添加到前缀房这样我可以调用所需房间的方法。

目前,我有这个代码,以接收选择

roomselect = scan.nextInt(); 

,然后这是我卡住作为即时通讯不确定如何roomselect整数添加到前缀“房间”

感谢

+1

您需要使用数组 – SLaks 2012-07-15 18:32:39

回答

2

只需使用数组:

// Create an array of Rooms 
Room rooms[] = new Room[8]; 
// Now, you have a placeholder for 8 rooms 
// Know that it are simply placeholders, the rooms are not initialized. 
// Each element of the array is initialized to null 

// Assigning 
rooms[2] = new Room(3, 2); // Initialize the room at index 2 (which is the 3th 
          // in spoken language) 


// Retrieving 
int index = 4; // Indices start at 0 
Room room4 = rooms[index]; 

// Or... 
rooms[5].doSomething(); 


// Getting the length 
int numberOfRooms = rooms.length; 

所以,解决你的情况:

int roomselect = scan.nextInt(); 
Room selectedRoom = rooms[roomselect]; 
+0

感谢您给我们你为什么不,我认为阵列!你已经省下了宝贵的时间,谢谢你 – 2012-07-15 18:51:16

1

如果你改变你的代码:

List<Room> rooms = new ArrayList<Room>();  
rooms.add(new Room(1,1)); 
rooms.add(new Room(2,1)); 
... 

你可以得到你指定的房间与

rooms.get(roomselect); 

注意的是,指数会从0开始,而不是在1

1

将您的房间存储在数组中而不是单独的变量,然后通过数组索引访问每个房间:

Room[] rooms = new Room[8]; 

rooms[roomNumber].doSomething(); 
0

Java集合就是答案......

ArrayList<Room> room = new ArrayList<Room>(); 

Scanner scan = new Scanner(System.in); 

for (int i=1 ; i<9 ; i++){ 

    int r = scan.nextLine(); 

    if (r<5){ 

     room.add(new Room(r,1)); 
    } 

    else if ((r>4) && (r<7)){ 

     room.add(new Room(r,2)); 
    } 

    else if (r>6){ 

     room.add(new Room(r,3)); 

    } 

} 
相关问题