2012-06-12 32 views
20

Tôi cần chuyển đổi tên tiểu bang đầy đủ thành mã địa chỉ chính thức của tiểu bang. Ví dụ từ chuỗi New York, tôi cần sản xuất NY. Bây giờ tôi có thể đặt tất cả trong một hashmap, nhưng có vẻ như phải có một tiện ích cho điều này? Tôi đang ở trong môi trường Android. Tôi không muốn nhập một thư viện lớn chỉ cho một util này tuy nhiên. Cảm ơnCó Util để chuyển đổi Tên Tiểu bang Hoa Kỳ thành Mã Tiểu bang hay không. ví dụ. Arizona đến AZ?

+1

bạn cần phải thêm chỉ có một bản đồ để giữ thông tin này như Óscar López cho thấy, không phải là một lớn overhead – ant

+1

thể đã gõ nó trong tay trong thời gian này. –

+2

Có giá trị cho câu hỏi bởi vì nó có thể tồn tại trong một thư viện chung, nhưng bây giờ chúng ta có ý kiến ​​cộng đồng rằng không, và câu trả lời đã được xác thực bằng cách sử dụng một HashMap một cách chính xác, cần phải được kiểm tra lại nếu mọi người nhập nó một cách riêng biệt. Bắt đầu lập trình cũng sẽ không nhất thiết phải nhận thức được việc sử dụng HashMaps theo cách này exp. vì sự tách biệt của nhân vật. –

Trả lời

61

Tôi có nó làm sẵn - bạn có thể sử dụng nó:

Map<String, String> states = new HashMap<String, String>(); 
states.put("Alabama","AL"); 
states.put("Alaska","AK"); 
states.put("Alberta","AB"); 
states.put("American Samoa","AS"); 
states.put("Arizona","AZ"); 
states.put("Arkansas","AR"); 
states.put("Armed Forces (AE)","AE"); 
states.put("Armed Forces Americas","AA"); 
states.put("Armed Forces Pacific","AP"); 
states.put("British Columbia","BC"); 
states.put("California","CA"); 
states.put("Colorado","CO"); 
states.put("Connecticut","CT"); 
states.put("Delaware","DE"); 
states.put("District Of Columbia","DC"); 
states.put("Florida","FL"); 
states.put("Georgia","GA"); 
states.put("Guam","GU"); 
states.put("Hawaii","HI"); 
states.put("Idaho","ID"); 
states.put("Illinois","IL"); 
states.put("Indiana","IN"); 
states.put("Iowa","IA"); 
states.put("Kansas","KS"); 
states.put("Kentucky","KY"); 
states.put("Louisiana","LA"); 
states.put("Maine","ME"); 
states.put("Manitoba","MB"); 
states.put("Maryland","MD"); 
states.put("Massachusetts","MA"); 
states.put("Michigan","MI"); 
states.put("Minnesota","MN"); 
states.put("Mississippi","MS"); 
states.put("Missouri","MO"); 
states.put("Montana","MT"); 
states.put("Nebraska","NE"); 
states.put("Nevada","NV"); 
states.put("New Brunswick","NB"); 
states.put("New Hampshire","NH"); 
states.put("New Jersey","NJ"); 
states.put("New Mexico","NM"); 
states.put("New York","NY"); 
states.put("Newfoundland","NF"); 
states.put("North Carolina","NC"); 
states.put("North Dakota","ND"); 
states.put("Northwest Territories","NT"); 
states.put("Nova Scotia","NS"); 
states.put("Nunavut","NU"); 
states.put("Ohio","OH"); 
states.put("Oklahoma","OK"); 
states.put("Ontario","ON"); 
states.put("Oregon","OR"); 
states.put("Pennsylvania","PA"); 
states.put("Prince Edward Island","PE"); 
states.put("Puerto Rico","PR"); 
states.put("Quebec","QC"); 
states.put("Rhode Island","RI"); 
states.put("Saskatchewan","SK"); 
states.put("South Carolina","SC"); 
states.put("South Dakota","SD"); 
states.put("Tennessee","TN"); 
states.put("Texas","TX"); 
states.put("Utah","UT"); 
states.put("Vermont","VT"); 
states.put("Virgin Islands","VI"); 
states.put("Virginia","VA"); 
states.put("Washington","WA"); 
states.put("West Virginia","WV"); 
states.put("Wisconsin","WI"); 
states.put("Wyoming","WY"); 
states.put("Yukon Territory","YT"); 
+2

Tôi muốn tôi có thể upvote này 100 lần cho số lượng gõ bạn vừa lưu tôi. Tôi khuyên bạn nên thay đổi HashMap thành LinkedHashMap để duy trì thứ tự bảng chữ cái. –

+0

Tôi đoán nhận xét trước đây của tôi về việc duy trì thứ tự sắp xếp không có ý nghĩa nhiều từ quan điểm của câu hỏi gốc. Tôi muốn danh sách này để cư trú một giao diện người dùng thả xuống mặc dù. –

+0

Bạn cũng đã thêm một số tiểu bang của Canada. OP yêu cầu các tên tiểu bang của Hoa Kỳ. – Hamdi

1

Tạo Map<String, String> với mã và giá trị, thật đơn giản để thực hiện và với rất ít dữ liệu. Không có "tiện ích" cho điều này, nó rất cụ thể cho ứng dụng bạn đang xây dựng.

0

Tôi không nghĩ vậy (Ít nhất tôi chưa bao giờ nghe nói về nó). Nhưng bạn luôn có thể sử dụng một từ điển để thực hiện điều đó.

1

Tôi nghĩ cách đơn giản nhất là với HashMap. Ngay cả khi có một thư viện để chuyển đổi nó, nó có lẽ sẽ sử dụng cùng một thứ.

Map<String, String> states = new HashMap<String, String>(); 
states.put("Arizona", "AZ"); 
states.put("California", "CA"); 
// So on and so forth... 

// Then you could create a method like 
public String toStateCode(String s) { 
    return states.get(s); 
} 
22

Tôi biết điều này không trả lời câu hỏi, nhưng chỉ trong trường hợp ai đó cần điều ngược lại: sử dụng tiểu bang/tỉnh chữ viết tắt dưới dạng khóa và tên dưới dạng giá trị. Tôi mất vài phút để định dạng lại bản đồ. Ngoài ra, chữ viết tắt của Quebec trong câu trả lời được chấp nhận là sai.

public static final Map<String, String> STATE_MAP; 
static { 
    STATE_MAP = new HashMap<String, String>(); 
    STATE_MAP.put("AL", "Alabama"); 
    STATE_MAP.put("AK", "Alaska"); 
    STATE_MAP.put("AB", "Alberta"); 
    STATE_MAP.put("AZ", "Arizona"); 
    STATE_MAP.put("AR", "Arkansas"); 
    STATE_MAP.put("BC", "British Columbia"); 
    STATE_MAP.put("CA", "California"); 
    STATE_MAP.put("CO", "Colorado"); 
    STATE_MAP.put("CT", "Connecticut"); 
    STATE_MAP.put("DE", "Delaware"); 
    STATE_MAP.put("DC", "District Of Columbia"); 
    STATE_MAP.put("FL", "Florida"); 
    STATE_MAP.put("GA", "Georgia"); 
    STATE_MAP.put("GU", "Guam"); 
    STATE_MAP.put("HI", "Hawaii"); 
    STATE_MAP.put("ID", "Idaho"); 
    STATE_MAP.put("IL", "Illinois"); 
    STATE_MAP.put("IN", "Indiana"); 
    STATE_MAP.put("IA", "Iowa"); 
    STATE_MAP.put("KS", "Kansas"); 
    STATE_MAP.put("KY", "Kentucky"); 
    STATE_MAP.put("LA", "Louisiana"); 
    STATE_MAP.put("ME", "Maine"); 
    STATE_MAP.put("MB", "Manitoba"); 
    STATE_MAP.put("MD", "Maryland"); 
    STATE_MAP.put("MA", "Massachusetts"); 
    STATE_MAP.put("MI", "Michigan"); 
    STATE_MAP.put("MN", "Minnesota"); 
    STATE_MAP.put("MS", "Mississippi"); 
    STATE_MAP.put("MO", "Missouri"); 
    STATE_MAP.put("MT", "Montana"); 
    STATE_MAP.put("NE", "Nebraska"); 
    STATE_MAP.put("NV", "Nevada"); 
    STATE_MAP.put("NB", "New Brunswick"); 
    STATE_MAP.put("NH", "New Hampshire"); 
    STATE_MAP.put("NJ", "New Jersey"); 
    STATE_MAP.put("NM", "New Mexico"); 
    STATE_MAP.put("NY", "New York"); 
    STATE_MAP.put("NF", "Newfoundland"); 
    STATE_MAP.put("NC", "North Carolina"); 
    STATE_MAP.put("ND", "North Dakota"); 
    STATE_MAP.put("NT", "Northwest Territories"); 
    STATE_MAP.put("NS", "Nova Scotia"); 
    STATE_MAP.put("NU", "Nunavut"); 
    STATE_MAP.put("OH", "Ohio"); 
    STATE_MAP.put("OK", "Oklahoma"); 
    STATE_MAP.put("ON", "Ontario"); 
    STATE_MAP.put("OR", "Oregon"); 
    STATE_MAP.put("PA", "Pennsylvania"); 
    STATE_MAP.put("PE", "Prince Edward Island"); 
    STATE_MAP.put("PR", "Puerto Rico"); 
    STATE_MAP.put("QC", "Quebec"); 
    STATE_MAP.put("RI", "Rhode Island"); 
    STATE_MAP.put("SK", "Saskatchewan"); 
    STATE_MAP.put("SC", "South Carolina"); 
    STATE_MAP.put("SD", "South Dakota"); 
    STATE_MAP.put("TN", "Tennessee"); 
    STATE_MAP.put("TX", "Texas"); 
    STATE_MAP.put("UT", "Utah"); 
    STATE_MAP.put("VT", "Vermont"); 
    STATE_MAP.put("VI", "Virgin Islands"); 
    STATE_MAP.put("VA", "Virginia"); 
    STATE_MAP.put("WA", "Washington"); 
    STATE_MAP.put("WV", "West Virginia"); 
    STATE_MAP.put("WI", "Wisconsin"); 
    STATE_MAP.put("WY", "Wyoming"); 
    STATE_MAP.put("YT", "Yukon Territory"); 
} 
+0

Bạn cũng đã thêm một số tiểu bang của Canada. OP yêu cầu các tên tiểu bang của Hoa Kỳ. – Hamdi

+3

Tôi cần các tiểu bang của Canada. Không đau để bao gồm chúng. –

+0

Các bạn có lẽ nên làm việc cùng nhau trên một thư viện được chia sẻ cho điều này, tuy nhiên tôi khen ngợi nỗ lực của việc tiếp tục đăng bài/chủ đề trong tên chính xác, Bạn nhận được phiếu bầu của tôi. –

2

Đây là phiên bản cập nhật có Mã cho Hoa Kỳ (Hoa Kỳ) và Lãnh thổ Hoa Kỳ, Canada và Mexico. Đây là bản đồ 2 chiều. Cung cấp tên cho mã đã cho và ngược lại. Cuộn xuống cho cả hai tùy chọn.

private static final Map<String, String> stateCodeToNameMap = new HashMap<>(); 

private static final Map<String, String> stateNameToCodeMap = new HashMap<>(); 

static { 
    // Load US Codes. 
    stateCodeToNameMap.put("AK", "Alaska"); 
    stateCodeToNameMap.put("AL", "Alabama"); 
    stateCodeToNameMap.put("AR", "Akansas"); 
    stateCodeToNameMap.put("AZ", "Arizona"); 
    stateCodeToNameMap.put("CA", "California"); 
    stateCodeToNameMap.put("CO", "Colorado"); 
    stateCodeToNameMap.put("CT", "Connecticut"); 
    stateCodeToNameMap.put("DC", "District of Columbia"); 
    stateCodeToNameMap.put("DE", "Delaware"); 
    stateCodeToNameMap.put("FL", "Florida"); 
    stateCodeToNameMap.put("GA", "Georgia"); 
    stateCodeToNameMap.put("HI", "Hawaii"); 
    stateCodeToNameMap.put("IA", "Iowa"); 
    stateCodeToNameMap.put("ID", "Idaho"); 
    stateCodeToNameMap.put("IL", "Illinois"); 
    stateCodeToNameMap.put("IN", "Indiana"); 
    stateCodeToNameMap.put("KS", "Kansas"); 
    stateCodeToNameMap.put("KY", "Kentucky"); 
    stateCodeToNameMap.put("LA", "Louisiana"); 
    stateCodeToNameMap.put("MA", "Massachusetts"); 
    stateCodeToNameMap.put("MD", "Maryland"); 
    stateCodeToNameMap.put("ME", "Maine"); 
    stateCodeToNameMap.put("MI", "Michigan"); 
    stateCodeToNameMap.put("MN", "Minnesota"); 
    stateCodeToNameMap.put("MO", "Missouri"); 
    stateCodeToNameMap.put("MS", "Mississippi"); 
    stateCodeToNameMap.put("MT", "Montana"); 
    stateCodeToNameMap.put("NC", "North Carolina"); 
    stateCodeToNameMap.put("ND", "North Dakota"); 
    stateCodeToNameMap.put("NE", "Nebraska"); 
    stateCodeToNameMap.put("NH", "New Hampshire"); 
    stateCodeToNameMap.put("NJ", "New Jersey"); 
    stateCodeToNameMap.put("NM", "New Mexico"); 
    stateCodeToNameMap.put("NV", "Nevada"); 
    stateCodeToNameMap.put("NY", "New York"); 
    stateCodeToNameMap.put("OH", "Ohio"); 
    stateCodeToNameMap.put("OK", "Oklahoma"); 
    stateCodeToNameMap.put("OR", "Oregon"); 
    stateCodeToNameMap.put("PA", "Pennsylvania"); 
    stateCodeToNameMap.put("RI", "Rhode Island"); 
    stateCodeToNameMap.put("SC", "South Carolina"); 
    stateCodeToNameMap.put("SD", "South Dakota"); 
    stateCodeToNameMap.put("TN", "Tennessee"); 
    stateCodeToNameMap.put("TX", "Texas"); 
    stateCodeToNameMap.put("UT", "Utah"); 
    stateCodeToNameMap.put("VA", "Virginia"); 
    stateCodeToNameMap.put("VT", "Vermont"); 
    stateCodeToNameMap.put("WA", "Washington"); 
    stateCodeToNameMap.put("WI", "Wisconsin"); 
    stateCodeToNameMap.put("WV", "West Virginia"); 
    stateCodeToNameMap.put("WY", "Wyoming"); 
    stateCodeToNameMap.put("GU", "Guam"); 
    stateCodeToNameMap.put("VI", "Virgin Islands"); 
    stateCodeToNameMap.put("PR", "Puerto Rico"); 
    stateCodeToNameMap.put("AE", "Armed forces - Europe"); 
    stateCodeToNameMap.put("AA", "Armed forces - America"); 
    stateCodeToNameMap.put("AP", "Armed forces - Pacific"); 

    // Load Canada Codes. 
    stateCodeToNameMap.put("AB", "Alberta"); 
    stateCodeToNameMap.put("BC", "British Columbia"); 
    stateCodeToNameMap.put("MB", "Manitoba"); 
    stateCodeToNameMap.put("NB", "New Brunswick"); 
    stateCodeToNameMap.put("NL", "Newfoundland and Labrador"); 
    stateCodeToNameMap.put("NT", "Northwest Territories"); 
    stateCodeToNameMap.put("NS", "Nova Scotia"); 
    stateCodeToNameMap.put("NU", "Nunavut"); 
    stateCodeToNameMap.put("ON", "Ontario"); 
    stateCodeToNameMap.put("PE", "Prince Edward Island"); 
    stateCodeToNameMap.put("QC", "Quebec"); 
    stateCodeToNameMap.put("SK", "Saskatchewan"); 
    stateCodeToNameMap.put("YT", "Yukon"); 

    // Load México Codes. 
    stateCodeToNameMap.put("AGU", "Aguascalientes"); 
    stateCodeToNameMap.put("BCN", "Baja California"); 
    stateCodeToNameMap.put("BCS", "Baja California Sur"); 
    stateCodeToNameMap.put("CAM", "Campeche"); 
    stateCodeToNameMap.put("CHP", "Chiapas"); 
    stateCodeToNameMap.put("CHH", "Chihuahua"); 
    stateCodeToNameMap.put("COA", "Coahuila"); 
    stateCodeToNameMap.put("COL", "Colima"); 
    stateCodeToNameMap.put("DIF", "Distrito Federal"); 
    stateCodeToNameMap.put("DUR", "Durango"); 
    stateCodeToNameMap.put("GUA", "Guanajuato"); 
    stateCodeToNameMap.put("GRO", "Guerrero"); 
    stateCodeToNameMap.put("HID", "Hidalgo"); 
    stateCodeToNameMap.put("JAL", "Jalisco"); 
    stateCodeToNameMap.put("MEX", "México"); 
    stateCodeToNameMap.put("MIC", "Michoacán"); 
    stateCodeToNameMap.put("MOR", "Morelos"); 
    stateCodeToNameMap.put("NAY", "Nayarit"); 
    stateCodeToNameMap.put("NLE", "Nuevo León"); 
    stateCodeToNameMap.put("OAX", "Oaxaca"); 
    stateCodeToNameMap.put("PUE", "Puebla"); 
    stateCodeToNameMap.put("QUE", "Querétaro"); 
    stateCodeToNameMap.put("ROO", "Quintana Roo"); 
    stateCodeToNameMap.put("SLP", "San Luis Potosí"); 
    stateCodeToNameMap.put("SIN", "Sinaloa"); 
    stateCodeToNameMap.put("SON", "Sonora"); 
    stateCodeToNameMap.put("TAB", "Tabasco"); 
    stateCodeToNameMap.put("TAM", "Tamaulipas"); 
    stateCodeToNameMap.put("TLA", "Tlaxcala"); 
    stateCodeToNameMap.put("VER", "Veracruz"); 
    stateCodeToNameMap.put("YUC", "Yucatán"); 
    stateCodeToNameMap.put("ZAC", "Zacatecas"); 


    // Load US State Names. 
    stateNameToCodeMap.put("Alabama","AL"); 
    stateNameToCodeMap.put("Alaska","AK"); 
    stateNameToCodeMap.put("Arizona","AZ"); 
    stateNameToCodeMap.put("Arkansas","AR"); 
    stateNameToCodeMap.put("California","CA"); 
    stateNameToCodeMap.put("Colorado","CO"); 
    stateNameToCodeMap.put("Connecticut","CT"); 
    stateNameToCodeMap.put("Delaware","DE"); 
    stateNameToCodeMap.put("District Of Columbia","DC"); 
    stateNameToCodeMap.put("Florida","FL"); 
    stateNameToCodeMap.put("Georgia","GA"); 
    stateNameToCodeMap.put("Hawaii","HI"); 
    stateNameToCodeMap.put("Idaho","ID"); 
    stateNameToCodeMap.put("Illinois","IL"); 
    stateNameToCodeMap.put("Indiana","IN"); 
    stateNameToCodeMap.put("Iowa","IA"); 
    stateNameToCodeMap.put("Kansas","KS"); 
    stateNameToCodeMap.put("Kentucky","KY"); 
    stateNameToCodeMap.put("Louisiana","LA"); 
    stateNameToCodeMap.put("Maine","ME"); 
    stateNameToCodeMap.put("Maryland","MD"); 
    stateNameToCodeMap.put("Massachusetts","MA"); 
    stateNameToCodeMap.put("Michigan","MI"); 
    stateNameToCodeMap.put("Minnesota","MN"); 
    stateNameToCodeMap.put("Mississippi","MS"); 
    stateNameToCodeMap.put("Missouri","MO"); 
    stateNameToCodeMap.put("Montana","MT"); 
    stateNameToCodeMap.put("Nebraska","NE"); 
    stateNameToCodeMap.put("Nevada","NV"); 
    stateNameToCodeMap.put("New Hampshire","NH"); 
    stateNameToCodeMap.put("New Jersey","NJ"); 
    stateNameToCodeMap.put("New Mexico","NM"); 
    stateNameToCodeMap.put("New York","NY"); 
    stateNameToCodeMap.put("North Carolina","NC"); 
    stateNameToCodeMap.put("North Dakota","ND"); 
    stateNameToCodeMap.put("Ohio","OH"); 
    stateNameToCodeMap.put("Oklahoma","OK"); 
    stateNameToCodeMap.put("Oregon","OR"); 
    stateNameToCodeMap.put("Pennsylvania","PA"); 
    stateNameToCodeMap.put("Rhode Island","RI"); 
    stateNameToCodeMap.put("South Carolina","SC"); 
    stateNameToCodeMap.put("South Dakota","SD"); 
    stateNameToCodeMap.put("Tennessee","TN"); 
    stateNameToCodeMap.put("Texas","TX"); 
    stateNameToCodeMap.put("Utah","UT"); 
    stateNameToCodeMap.put("Vermont","VT"); 
    stateNameToCodeMap.put("Virginia","VA"); 
    stateNameToCodeMap.put("Washington","WA"); 
    stateNameToCodeMap.put("West Virginia","WV"); 
    stateNameToCodeMap.put("Wisconsin","WI"); 
    stateNameToCodeMap.put("Wyoming","WY"); 
    stateNameToCodeMap.put("Guam", "GU"); 
    stateNameToCodeMap.put("Puerto Rico","PR"); 
    stateNameToCodeMap.put("Virgin Islands","VI"); 
    stateNameToCodeMap.put("Armed Forces (AE)","AE"); 
    stateNameToCodeMap.put("Armed Forces Americas","AA"); 
    stateNameToCodeMap.put("Armed Forces Pacific","AP"); 


    // Load Canada State Names. 
    stateNameToCodeMap.put("Alberta","AB"); 
    stateNameToCodeMap.put("British Columbia","BC"); 
    stateNameToCodeMap.put("Manitoba","MB"); 
    stateNameToCodeMap.put("New Brunswick","NB"); 
    stateNameToCodeMap.put("Newfoundland and Labrador","NF"); 
    stateNameToCodeMap.put("Northwest Territories","NT"); 
    stateNameToCodeMap.put("Nova Scotia","NS"); 
    stateNameToCodeMap.put("Nunavut","NU"); 
    stateNameToCodeMap.put("Ontario","ON"); 
    stateNameToCodeMap.put("Prince Edward Island","PE"); 
    stateNameToCodeMap.put("Quebec","QC"); 
    stateNameToCodeMap.put("Saskatchewan","SK"); 
    stateNameToCodeMap.put("Yukon Territory","YT"); 


    // Load México State Names. 
    stateNameToCodeMap.put("Aguascalientes", "AGU"); 
    stateNameToCodeMap.put("Baja California", "BCN"); 
    stateNameToCodeMap.put("Baja California Sur", "BCS"); 
    stateNameToCodeMap.put("Campeche", "CAM"); 
    stateNameToCodeMap.put("Chiapas", "CHP"); 
    stateNameToCodeMap.put("Chihuahua", "CHH"); 
    stateNameToCodeMap.put("Coahuila", "COA"); 
    stateNameToCodeMap.put("Colima", "COL"); 
    stateNameToCodeMap.put("Distrito Federal", "DIF"); 
    stateNameToCodeMap.put("Durango", "DUR"); 
    stateNameToCodeMap.put("Guanajuato", "GUA"); 
    stateNameToCodeMap.put("Guerrero", "GRO"); 
    stateNameToCodeMap.put("Hidalgo", "HID"); 
    stateNameToCodeMap.put("Jalisco", "JAL"); 
    stateNameToCodeMap.put("México", "MEX"); 
    stateNameToCodeMap.put("Michoacán", "MIC"); 
    stateNameToCodeMap.put("Morelos", "MOR"); 
    stateNameToCodeMap.put("Nayarit", "NAY"); 
    stateNameToCodeMap.put("Nuevo León", "NLE"); 
    stateNameToCodeMap.put("Oaxaca", "OAX"); 
    stateNameToCodeMap.put("Puebla", "PUE"); 
    stateNameToCodeMap.put("Querétaro", "QUE"); 
    stateNameToCodeMap.put("Quintana Roo", "ROO"); 
    stateNameToCodeMap.put("San Luis Potosí", "SLP"); 
    stateNameToCodeMap.put("Sinaloa", "SIN"); 
    stateNameToCodeMap.put("Sonora", "SON"); 
    stateNameToCodeMap.put("Tabasco", "TAB"); 
    stateNameToCodeMap.put("Tamaulipas", "TAM"); 
    stateNameToCodeMap.put("Tlaxcala", "TLA"); 
    stateNameToCodeMap.put("Veracruz", "VER"); 
    stateNameToCodeMap.put("Yucatán", "YUC"); 
    stateNameToCodeMap.put("Zacatecas", "ZAC"); 
} 
0

Thậm chí tốt hơn để sử dụng Enum.

import java.util.HashMap; 

nhập java.util.Map;

public enum Tiểu bang {

ALABAMA("Alabama", "AL"), ALASKA("Alaska", "AK"), AMERICAN_SAMOA("American Samoa", "AS"), ARIZONA("Arizona", "AZ"), ARKANSAS(
"Arkansas", "AR"), CALIFORNIA("California", "CA"), COLORADO("Colorado", "CO"), CONNECTICUT("Connecticut", "CT"), DELAWARE(
"Delaware", "DE"), DISTRICT_OF_COLUMBIA("District of Columbia", "DC"), FEDERATED_STATES_OF_MICRONESIA(
"Federated States of Micronesia", "FM"), FLORIDA("Florida", "FL"), GEORGIA("Georgia", "GA"), GUAM("Guam", "GU"), HAWAII(
"Hawaii", "HI"), IDAHO("Idaho", "ID"), ILLINOIS("Illinois", "IL"), INDIANA("Indiana", "IN"), IOWA("Iowa", "IA"), KANSAS(
"Kansas", "KS"), KENTUCKY("Kentucky", "KY"), LOUISIANA("Louisiana", "LA"), MAINE("Maine", "ME"), MARYLAND("Maryland", "MD"), MARSHALL_ISLANDS(
"Marshall Islands", "MH"), MASSACHUSETTS("Massachusetts", "MA"), MICHIGAN("Michigan", "MI"), MINNESOTA("Minnesota", "MN"), MISSISSIPPI(
"Mississippi", "MS"), MISSOURI("Missouri", "MO"), MONTANA("Montana", "MT"), NEBRASKA("Nebraska", "NE"), NEVADA("Nevada", 
"NV"), NEW_HAMPSHIRE("New Hampshire", "NH"), NEW_JERSEY("New Jersey", "NJ"), NEW_MEXICO("New Mexico", "NM"), NEW_YORK(
"New York", "NY"), NORTH_CAROLINA("North Carolina", "NC"), NORTH_DAKOTA("North Dakota", "ND"), NORTHERN_MARIANA_ISLANDS(
"Northern Mariana Islands", "MP"), OHIO("Ohio", "OH"), OKLAHOMA("Oklahoma", "OK"), OREGON("Oregon", "OR"), PALAU("Palau", 
"PW"), PENNSYLVANIA("Pennsylvania", "PA"), PUERTO_RICO("Puerto Rico", "PR"), RHODE_ISLAND("Rhode Island", "RI"), SOUTH_CAROLINA(
"South Carolina", "SC"), SOUTH_DAKOTA("South Dakota", "SD"), TENNESSEE("Tennessee", "TN"), TEXAS("Texas", "TX"), UTAH(
"Utah", "UT"), VERMONT("Vermont", "VT"), VIRGIN_ISLANDS("Virgin Islands", "VI"), VIRGINIA("Virginia", "VA"), WASHINGTON(
"Washington", "WA"), WEST_VIRGINIA("West Virginia", "WV"), WISCONSIN("Wisconsin", "WI"), WYOMING("Wyoming", "WY"), UNKNOWN(
"Unknown", ""); 

/** 
* The state's name. 
*/ 
private String name; 

/** 
* The state's abbreviation. 
*/ 
private String abbreviation; 

/** 
* The set of states addressed by abbreviations. 
*/ 
private static final Map<String, State> STATES_BY_ABBR = new HashMap<String, State>(); 

/* static initializer */ 
static { 
    for (State state : values()) { 
     STATES_BY_ABBR.put(state.getAbbreviation(), state); 
    } 
} 

/** 
* Constructs a new state. 
* 
* @param name the state's name. 
* @param abbreviation the state's abbreviation. 
*/ 
State(String name, String abbreviation) { 
    this.name = name; 
    this.abbreviation = abbreviation; 
} 

/** 
* Returns the state's abbreviation. 
* 
* @return the state's abbreviation. 
*/ 
public String getAbbreviation() { 
    return abbreviation; 
} 

/** 
* Gets the enum constant with the specified abbreviation. 
* 
* @param abbr the state's abbreviation. 
* @return the enum constant with the specified abbreviation. 
* @throws SunlightException if the abbreviation is invalid. 
*/ 
public static State valueOfAbbreviation(final String abbr) { 
    final State state = STATES_BY_ABBR.get(abbr); 
    if (state != null) { 
     return state; 
    } else { 
     return UNKNOWN; 
    } 
} 

public static State valueOfName(final String name) { 
    final String enumName = name.toUpperCase().replaceAll(" ", "_"); 
    try { 
     return valueOf(enumName); 
    } catch (final IllegalArgumentException e) { 
     return State.UNKNOWN; 
    } 
} 

@Override 
public String toString() { 
    return name; 
} 

}

Các vấn đề liên quan