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];
}
}