|
|
- Scanner-olioilla voidaan lukea monia erilaisia tietovirtoja. Olemme tähän asti lukeneet lähinnä käyttäjien syötteitä System.in-tietovirrasta, mutta Scanneria voidaan käyttää myös esimerkiksi tiedostojen ja verkkolähteiden lukemiseen.
-
- Tässä tehtävässä sinun tulee lukea verkosta kaupunkien nimet ja väkiluvut ja tulostaa sellaisten kaupunkien nimet, joiden väkiluku on yli 10 000 asukasta. Käytä pohjana KaupungitVerkosta.java-tiedostoa.
-
- KaupungitVerkosta-luokan logiikka on toteutettu siten, että kaupungin nimi tulostetaan heti kyseistä riviä läpikäytäessä. Tässä tehtävässä sinun tulee muuttaa toimintalogiikkaa niin, että nimet tulostetaan aakkosjärjestyksessä.
-
- Aakkosjärjestyksen toteuttamiseksi sinun tuleekin laittaa yli 10 000 asukkaan kaupunkien nimet talteen listalle kunnes kaikki kaupungit on käyty läpi. Sen jälkeen järjestä lista Collections.sort-metodin avulla, ja lopuksi tulosta listan alkiot yksi kerrallaan.
-
- Pohja: https://github.com/haagahelia/swd4tn032-TH_JJ/blob/master/src/viikko3/listat/th/KaupungitVerkosta.java
-
- Collections.sort: https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List-
-
- ```
- Example output:
- Akaa
- Alavus
- Espoo
- Forssa
- Hamina
- Heinola
- Helsinki
- Huittinen
- Hyvinkää
- Hämeenlinna
- Iisalmi
- Imatra
- Joensuu
- Jyväskylä
- Jämsä
- Järvenpää
- Kaarina
- Kajaani
- Kalajoki
- Kangasala
- Kankaanpää
- Kauhajoki
- Kauhava
- Kemi
- Kerava
- Kitee
- Kokkola
- Kotka
- Kouvola
- Kuopio
- Kurikka
- Kuusamo
- Lahti
- Lappeenranta
- Lapua
- Lieksa
- Lohja
- Loimaa
- Loviisa
- Maarianhamina
- Mikkeli
- Naantali
- Nivala
- Nokia
- Orimattila
- Oulu
- Paimio
- Parainen
- Pieksämäki
- Pietarsaari
- Pori
- Porvoo
- Raahe
- Raasepori
- Raisio
- Rauma
- Riihimäki
- Rovaniemi
- Salo
- Sastamala
- Savonlinna
- Seinäjoki
- Tampere
- Tornio
- Turku
- Ulvila
- Uusikaupunki
- Vaasa
- Valkeakoski
- Vantaa
- Varkaus
- Ylivieska
- Ylöjärvi
- Äänekoski
- ```
-
- --------------------
-
- **KaupungitVerkosta.java**
-
- ```
- // Ref: https://github.com/haagahelia/swd4tn032-TH_JJ/blob/master/src/viikko3/listat/th/KaupungitVerkosta.java
-
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Scanner;
-
- public class KaupungitVerkosta {
-
- // Define Exception for unreachable URLs
- public static void main(String[] args) throws Exception {
-
- URL csvFile = new URL("https://git.io/Jv3N3");
- ArrayList<String> cityList = new ArrayList<String>();
- int i;
-
- Scanner syote = new Scanner(csvFile.openStream(), "UTF-8");
-
- // Exclude header line
- String firstLine = syote.nextLine();
-
- while (syote.hasNextLine()) {
- String line = syote.nextLine();
-
- // CSV delimiter is character ,
- int lineIndex = line.indexOf(",");
-
- String city = line.substring(0, lineIndex);
- int population = Integer.parseInt(line.substring(lineIndex + 1));
-
- if (population >= 10000) {
- cityList.add(city);
- }
- }
- syote.close();
-
- Collections.sort(cityList);
-
- for (i= 0; i < cityList.size(); i++) {
- System.out.println(cityList.get(i));
- }
- }
- }
- ```
|