Last active
May 6, 2021 20:16
-
-
Save froggomad/a2579426db4a9dfad62c7a2a0bbea315 to your computer and use it in GitHub Desktop.
All 50 US States, Abbreviations, and arrays of both in one enum
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
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