package eecs1022; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; import java.util.TreeMap; public class Cities { public static void main(String[] args) throws IOException { String name = "cities.txt"; File file = new File(name); Scanner input = new Scanner(file); Map cities = new TreeMap(); while (input.hasNextLine()) { String line = input.nextLine(); String[] part = line.split(" "); String city = part[1]; URL url = new URL("https://weather.gc.ca/city/pages/" + part[0]); cities.put(city, url); } input.close(); Set keys = cities.keySet(); String[] temp = new String[keys.size()]; String[] keysArray = keys.toArray(temp); List list = Arrays.asList(keysArray); Collections.shuffle(list); final String PREFIX = "
"; for (int i = 0; i < 10; i++) { String city = list.get(i); System.out.print(city + "\t"); URL url = cities.get(city); InputStream stream = url.openStream(); Scanner web = new Scanner(stream); boolean found = false; while (web.hasNextLine() && !found) { String line = web.nextLine(); if (line.contains("
Temperature:
")) { line = web.nextLine(); line = line.trim(); line = line.substring(PREFIX.length()); int index = line.indexOf("&"); line = line.substring(0, index); System.out.println(line); found = true; } } web.close(); } } }