2017-03-06 1 views
1

In diesem speziellen Code, wenn der Eingang [0] = "Status", möchte ich den Ausgang die Symbole "" [] entfernen, aber ich kann nicht scheinen die Lösung zu finden, ich habe versucht, jeden zu verwenden, aber ich denke, was ich mache, ist falsch, und ich bin neu in Ruby bitte helfen. Vielen Dank!Wie eine Ausgabe ohne Symbole und Zitate usw. in Ruby

class Main 
    puts "Welcome to the automated Parking Lot" 
    start = true 
    parking_lot = [] 
    allocated_slot = 0 
    slot_number = 0 
    plate_number = "" 
    color = "" 
    x = "" 
    while (start == true) do 
    parking = Array.new 
    input = gets.split(' ') 
    case input[0] 
    when input[0] = "create_parking_lot" 
     parking_lot.clear 
     allocated_slot = input[1] 
     puts "Created a parking lot with #{allocated_slot} slots." 
    when input[0] = "park" 
     plate_number = input[1] 
     color = input[2] 
     if parking_lot.length < allocated_slot.to_i 
     slot_number = slot_number + 1 
      parking = [slot_number, input[1], input[2]] 
      parking_lot.push(parking) 
      parking_lot.sort! 
      puts "Allocated slot number: #{slot_number}" 
     else 
     puts "Sorry, parking lot is full" 
     end 
    when input[0] = "leave" 
     slot_number = input[1].to_i 
     puts "Slot number #{slot_number} is now free." 
     slot_number = slot_number - 1 
     parking_lot.delete_at(slot_number) 
     parking_lot[slot_number] 
     #puts parking_lot 
    when input[0] = "quit" 
     break 
    when input[0] = "status" 
     if parking_lot.count == 0 
     puts "No cars are parked." 
     else 
     puts "Slot No. Registration No. Color" 
     parking.sort! 
     i = 0 
     y = "" 
     while i < allocated_slot.to_i do 
      x = parking_lot[i].to_s 
      y = x.split(' ') 
      puts "#{y[0]} #{y[1]} #{y[2]}" # 
      #y.each { |a| print a, " " } 
      i = i+1 
     end 
    end 
    when input[0] = "registration_numbers_for_cars_with_color" 
     puts "registration number for cars" 
    when input[0] = "slot_numbers_for_cars_with_color" 
     puts "slot number for cars with color" 
    when input[0] = "slot_number_for_registration_number" 
     puts "slot number for registration number" 
    when input[0] = "check" 
     puts parking_lot 
    else 
    puts "Command Error" 
    end 
    end 

und der Ausgang geht so: [1 "HA-312424242", "Green"]

Antwort

0

Wenn Sie ein Array ausgegeben werden, die wie folgt aussieht:

[1, "HA-312424242", "Green"] 

Dann können Sie die join Methode auf es so nennen:

[1, "HA-312424242", "Green"].join(' ') 

und es wird produzieren:

"1 HA-312424242 Green" 
+0

Hallo dies wirklich funktioniert, aber jetzt habe ich ein anderes Problem dar, da die Ausgabe wie diese geht "1 HA-312424242 Green" "2 HA-312342323-323 Black" "3 HA-323.232-12.132 Red" wie kann ich verschiebe die nächsten Ausgänge durch mein Array in die nächste Zeile. Danke Mark! – Rynx

+0

Kannst du einfach 'puts [1," HA-312424242 "," Grün "] eingeben? Join ('')'? – Mark

+0

Ich kann nicht, weil ich die Eingabe vom Benutzer bekomme, das ist mein Code setzt jetzt "Slot Nr. Registrierungs-Nr. Farbe" parking.sort! setzt parking_lot.join ('') und jedes Mal, wenn der Benutzer eine neue Auto-Info eingibt, geht der Ausgang horizontal, in dem ich möchte, dass jeder Ausgang in der nächsten Zeile ist. trotzdem danke! :) – Rynx