KamaKAzii
5/25/2015 - 1:28 AM

FindAddress.java

public class FindAddress {

    public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
    public static final String[] STREET_TYPES = ["rd", "st", "ave", "hwy"];
    public static final String[] SUBURB_NAMES = ["Croydon", "Pyrmont", "Menai", "Melbourne"]

    private double streetNumber;
    private String streetType;
    private String streetName;
    private String suburbName;

    public static void main() {
        suburbName = getSuburbName(1);
        streetNumer = getStreetNumber(0.934, 1);
        streetName = getStreetName([12, 20, 17, 17, 24]);
        streetType = getStreetType(1);


        // This would theoreticall print the address to the screen:
        System.out.println(streetNumber + " " + streetNumber + " " + streetType + ", " + suburbName);
    }

    private string getSuburbName (int index) {
        // Remember: arrays start at 0 :)
        // Just in case you need it...
        // given: String[] sampleArray = ["example", "array"];
        // then: sampleArray[0] will return "example".
        return SUBURB_NAMES[index];
    }

    private int getStreetNumber(double x, double y) {
        // Note: 
        // asin() is the Java function for inverse sin.
        // asin() returns radians as a 'double'.
        // A 'double' is merely a number type.
        double radians = Math.asin(x/y);

        // You can imagine what Math.toDegrees() does... Use your calculator ;)
        double resultAngle = Math.toDegrees(radians);

        // Definitely don't forget this step.
        double unroundedStreetNumber = (resultAngle * 2) + 1;

        // Math.round() just rounds.
        double roundedStreetNumber = Math.round(unroundedStreetNumber);

        // The next line just converts the double to an int.
        int = roundedStreetNumber.intValue();

        return roundedStreetNumber;
    }

    private String getStreetName(int[] streetNameArray) {

        String targetStreetName = "";

        for (int i = 0; i < streetNameArray.length; i++) {
            int alphabetIndex = streetNameArray[i];
            targetStreetName = targetStreetName + ALPHABET[alphabetIndex];
        }

        return targetStreetName;
    }

    private string getStreetType (int index) {
        return STREET_TYPES[index];
    }
}