⌛⌛ Parametritaulukko

Aseta vastauksesi tiedostoon Parameters.java.

Toteuta ohjelma, joka tulostaa kaikki komentoriviparametrit aakkosjärjestyksessä juoksevasti rivinumeroituun “nätisti” muotoiltuun taulukkoon. Parametrit tulee tarkemmin ottaen tulostaa seuraavanlaiseen merkkien avulla piirrettyyn taulukkoon:

  • Taulukossa on kaksi saraketta.

    • Ensimmäiseen tuostetaan rivinumero, missä ylimmän rivin numero on 1, toiseksi ylimmän 2, jne.

    • Toiseen tulostetaan aakkosjärjestyksessä seuraava toistaiseksi tulostamaton komentoriviparametri. Ylimmälle riville aakkosjärjestyksessä ensimmäinen, toiseksi ylimmälle aakkosjärjestyksessä toinen, jne.

  • Kumpaakin saraketta varten varataan sen verran tilaa, että kyseisen sarakkeen leveydeksi tulee kyseisen sarakkeen leveimmän arvon merkkien määrä + yksi ylimääräinen välilyönti kummallekin puolelle.

    • Kummankin sarakkeen leveydet ovat toisistaan riippumattomia.

    • Ensimmäisen sarakkeen arvot tulostetaan oikeaan laitaan ja toisen sarakkeen arvot vasempaan laitaan kohdistettuina.

      • Ylimääräinen tila täytetään välilyönneillä.

  • Taulukon kunkin arvon ympärille tulostetaan alla tarkemmin kuvatuista merkeistä koostuva reunus.

    • Taulukon ulkoreuna koostuu risuaitamerkeistä ‘#’.

    • Kahden sarakkeen välissä on putkimerkeistä ‘|’ koostuva pystyviiva.

    • Kahden rivin välissä on miinusmerkistä ‘-’ koostuva vaakaviiva.

    • Poikkeus: edellämainittujen pysty- ja vaakaviivojen risteyskohdissa on plusmerkki ‘+’.

Vinkkejä

Aluksi pitää laskea kummankin sarakkeen leveimpien arvojen leveydet.

Ensimmäisen sarakkeen levein arvo on viimeisen rivin rivinumero. Voit esim. muuntaa viimeisen rivin rivinumeron String-merkkijonoksi ja tarkistaa sen pituuden.

Toisen sarakkeen levein arvo on pisin komentoriviparametri, jonka selvittäminen on suoraviivaista esim. heti alussa kaikki komentoriviparametrit läpikäyvällä silmukalla.

Kun kummankin sarakkeen leveys tiedetään, pitäisi taulukon tulostamisen onnistua varsin suoraviivaisesti. Kannattanee hyödyntä esim. funktiota System.out.format, jolle voi antaa tulostettavan arvon leveys- ja kohdistusmääreen.

Esimerkki

Ensimmäinen testi suorittaa ohjelmasi tapaan:

java Parameters Chad Benin Angola Algeria Finland Romania "Democratic Republic of the Congo"
Bolivia Uzbekistan Lesotho

Odotettu tuloste on:

#########################################
#  1 | Algeria                          #
#----+----------------------------------#
#  2 | Angola                           #
#----+----------------------------------#
#  3 | Benin                            #
#----+----------------------------------#
#  4 | Bolivia                          #
#----+----------------------------------#
#  5 | Chad                             #
#----+----------------------------------#
#  6 | Democratic Republic of the Congo #
#----+----------------------------------#
#  7 | Finland                          #
#----+----------------------------------#
#  8 | Lesotho                          #
#----+----------------------------------#
#  9 | Romania                          #
#----+----------------------------------#
# 10 | Uzbekistan                       #
#########################################

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.