Skip to content

Instantly share code, notes, and snippets.

@froggomad
Last active May 6, 2021 20:16
Show Gist options
  • Save froggomad/a2579426db4a9dfad62c7a2a0bbea315 to your computer and use it in GitHub Desktop.
Save froggomad/a2579426db4a9dfad62c7a2a0bbea315 to your computer and use it in GitHub Desktop.
All 50 US States, Abbreviations, and arrays of both in one enum
enum USState: String, CaseIterable {
case alabama = "AL"
case alaska = "AK"
case arizona = "AZ"
case arkansas = "AR"
case california = "CA"
case colorado = "CO"
case connecticut = "CT"
case delaware = "DE"
case florida = "FL"
case georgia = "GA"
case hawaii = "HI"
case idaho = "ID"
case illinois = "IL"
case indiana = "IN"
case iowa = "IA"
case kansas = "KS"
case kentucky = "KY"
case louisiana = "LA"
case maine = "ME"
case maryland = "MD"
case massachusetts = "MA"
case michigan = "MI"
case minnesota = "MN"
case mississippi = "MS"
case missouri = "MO"
case montana = "MT"
case nebraska = "NE"
case nevada = "NV"
case newHampshire = "NH"
case newJersey = "NJ"
case newMexico = "NM"
case newYork = "NY"
case northCarolina = "NC"
case northDakota = "ND"
case ohio = "OH"
case oklahoma = "OK"
case oregon = "OR"
case pennsylvania = "PA"
case rhodeIsland = "RI"
case southCarolina = "SC"
case southDakota = "SD"
case tennessee = "TN"
case texas = "TX"
case utah = "UT"
case vermont = "VT"
case virginia = "VI"
case washington = "WA"
case westVirginia = "WV"
case wisconsin = "WI"
case wyoming = "WY"
var stateName: String {
var name: String = ""
for char in String(describing: self) {
if String(char) != String(char).uppercased() {
name += String(char)
} else {
// add a space when we come to the camel-cased character
name += " \(String(char))"
}
}
return name.capitalized
}
static var allStateNames: [String] {
return USState.allCases.map { $0.stateName }
}
static var allStateAbbreviations: [String] {
return USState.allCases.map { $0.rawValue }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment