Created
November 2, 2020 12:23
-
-
Save SergLam/a252dd01324b5e2c04ecbe79cbb6b8fb to your computer and use it in GitHub Desktop.
USA States names + ISO 3166-2 codes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
// https://en.wikipedia.org/wiki/List_of_U.S._state_and_territory_abbreviations | |
// https://en.wikipedia.org/wiki/ISO_3166-2 | |
// NOTE: - Last two symbols from ISO 3166-2 state code | |
enum USAState: Int, CaseIterable { | |
case alabama = 1 | |
case alaska = 2 | |
case arizona = 3 | |
case arkansas = 4 | |
case california = 5 | |
case colorado = 6 | |
case connecticut = 7 | |
case delaware = 8 | |
case districtOfColumbia = 9 | |
case florida = 10 | |
case georgia = 11 | |
case hawaii = 12 | |
case idaho = 13 | |
case illinois = 14 | |
case indiana = 15 | |
case iowa = 16 | |
case kansas = 17 | |
case kentucky = 18 | |
case louisiana = 19 | |
case maine = 20 | |
case maryland = 21 | |
case massachusetts = 22 | |
case michigan = 23 | |
case minnesota = 24 | |
case mississippi = 25 | |
case missouri = 26 | |
case montana = 27 | |
case nebraska = 28 | |
case nevada = 29 | |
case newHampshire = 30 | |
case newJersey = 31 | |
case newMexico = 32 | |
case newYork = 33 | |
case northCarolina = 34 | |
case northDakota = 35 | |
case ohio = 36 | |
case oklahoma = 37 | |
case oregon = 38 | |
case pennsylvania = 39 | |
case rhodeIsland = 40 | |
case southCarolina = 41 | |
case southDakota = 42 | |
case tennessee = 43 | |
case texas = 44 | |
case utah = 45 | |
case vermont = 46 | |
case virginia = 47 | |
case washington = 48 | |
case westVirginia = 49 | |
case wisconsin = 50 | |
case wyoming = 51 | |
var displayName: String { | |
switch self { | |
case .alabama: | |
return "Alabama" | |
case .alaska: | |
return "Alaska" | |
case .arizona: | |
return "Arizona" | |
case .arkansas: | |
return "Arkansas" | |
case .california: | |
return "California" | |
case .colorado: | |
return "Colorado" | |
case .connecticut: | |
return "Connecticut" | |
case .delaware: | |
return "Delaware" | |
case .districtOfColumbia: | |
return "District of Columbia" | |
case .florida: | |
return "Florida" | |
case .georgia: | |
return "Georgia" | |
case .hawaii: | |
return "Hawaii" | |
case .idaho: | |
return "Idaho" | |
case .illinois: | |
return "Illinois" | |
case .indiana: | |
return "Indiana" | |
case .iowa: | |
return "Iowa" | |
case .kansas: | |
return "Kansas" | |
case .kentucky: | |
return "Kentucky" | |
case .louisiana: | |
return "Louisiana" | |
case .maine: | |
return "Maine" | |
case .maryland: | |
return "Maryland" | |
case .massachusetts: | |
return "Massachusetts" | |
case .michigan: | |
return "Michigan" | |
case .minnesota: | |
return "Minnesota" | |
case .mississippi: | |
return "Mississippi" | |
case .missouri: | |
return "Missouri" | |
case .montana: | |
return "Montana" | |
case .nebraska: | |
return "Nebraska" | |
case .nevada: | |
return "Nevada" | |
case .newHampshire: | |
return "New Hampshire" | |
case .newJersey: | |
return "New Jersey" | |
case .newMexico: | |
return "New Mexico" | |
case .newYork: | |
return "New York" | |
case .northCarolina: | |
return "North Carolina" | |
case .northDakota: | |
return "North Dakota" | |
case .ohio: | |
return "Ohio" | |
case .oklahoma: | |
return "Oklahoma" | |
case .oregon: | |
return "Oregon" | |
case .pennsylvania: | |
return "Pennsylvania" | |
case .rhodeIsland: | |
return "Rhode Island" | |
case .southCarolina: | |
return "South Carolina" | |
case .southDakota: | |
return "South Dakota" | |
case .tennessee: | |
return "Tennessee" | |
case .texas: | |
return "Texas" | |
case .utah: | |
return "Utah" | |
case .vermont: | |
return "Vermont" | |
case .virginia: | |
return "Virginia" | |
case .washington: | |
return "Washington" | |
case .westVirginia: | |
return "West Virginia" | |
case .wisconsin: | |
return "Wisconsin" | |
case .wyoming: | |
return "Wyoming" | |
} | |
} | |
var stateCode: String { | |
switch self { | |
case .alabama: | |
return "AL" | |
case .alaska: | |
return "AK" | |
case .arizona: | |
return "AZ" | |
case .arkansas: | |
return "AR" | |
case .california: | |
return "CA" | |
case .colorado: | |
return "CO" | |
case .connecticut: | |
return "CT" | |
case .delaware: | |
return "DE" | |
case .districtOfColumbia: | |
return "DC" | |
case .florida: | |
return "FL" | |
case .georgia: | |
return "GA" | |
case .hawaii: | |
return "HI" | |
case .idaho: | |
return "ID" | |
case .illinois: | |
return "IL" | |
case .indiana: | |
return "IN" | |
case .iowa: | |
return "IA" | |
case .kansas: | |
return "KS" | |
case .kentucky: | |
return "KY" | |
case .louisiana: | |
return "LA" | |
case .maine: | |
return "ME" | |
case .maryland: | |
return "MD" | |
case .massachusetts: | |
return "MA" | |
case .michigan: | |
return "MI" | |
case .minnesota: | |
return "MN" | |
case .mississippi: | |
return "MS" | |
case .missouri: | |
return "MO" | |
case .montana: | |
return "MT" | |
case .nebraska: | |
return "NE" | |
case .nevada: | |
return "NV" | |
case .newHampshire: | |
return "NH" | |
case .newJersey: | |
return "NJ" | |
case .newMexico: | |
return "NM" | |
case .newYork: | |
return "NY" | |
case .northCarolina: | |
return "NC" | |
case .northDakota: | |
return "ND" | |
case .ohio: | |
return "OH" | |
case .oklahoma: | |
return "OK" | |
case .oregon: | |
return "OR" | |
case .pennsylvania: | |
return "PA" | |
case .rhodeIsland: | |
return "RI" | |
case .southCarolina: | |
return "SC" | |
case .southDakota: | |
return "SD" | |
case .tennessee: | |
return "TN" | |
case .texas: | |
return "TX" | |
case .utah: | |
return "UT" | |
case .vermont: | |
return "VT" | |
case .virginia: | |
return "VA" | |
case .washington: | |
return "WA" | |
case .westVirginia: | |
return "WV" | |
case .wisconsin: | |
return "WI" | |
case .wyoming: | |
return "WY" | |
} | |
} | |
var isoStateCode: String { | |
switch self { | |
default: | |
return "USA-\(self.stateCode)" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment