Я знаю, что есть способ получить название страны из кода страны, но возможно ли это и наоборот? Я до сих пор не нашел никакой функции, которая преобразует строку «Нидерланды» в «NL». Если возможно, как я могу получить коды стран?получить код страны от имени страны в android
ответ
Не очень эффективно, но вы можете попробовать это:
for (Locale locale : Locale.getAvailableLocales()) {
if (locale.getDisplayCountry(Locale.US).equals("Netherlands")) {
// Found !
}
}
Теперь, есть несколько предостережений:
- ваша входная строка пишется на английском языке (если нет, знаете ли вы язык?)?
- - страна, в которой вы ищете часть поддерживаемой локали (если это не будет работать)?
public String getCountryCode(String countryName) {
// Get all country codes in a string array.
String[] isoCountryCodes = Locale.getISOCountries();
Map<String, String> countryMap = new HashMap<>();
// Iterate through all country codes:
for (String code : isoCountryCodes) {
// Create a locale using each country code
Locale locale = new Locale("", code);
// Get country name for each code.
String name = locale.getDisplayCountry();
// Map all country names and codes in key - value pairs.
countryMap.put(name, code);
}
// Get the country code for the given country name using the map.
// Here you will need some validation or better yet
// a list of countries to give to user to choose from.
String countryCode = countryMap.get(countryName); // "NL" for Netherlands.
return countryCode;
}
@Vllad ... Нет необходимости создавать новую карту каждый раз в цикле. Он всегда будет иметь размер 1 и сохранить последнюю запись. Вам нужно создать hashmap вне цикла. Я обновил ваш ответ –
Создавать 'HashMap' каждый раз, когда вы вызываете метод, очень плохая практика. – Dumbo
Я попробовал этот код, и это работает для меня.
public String GetCountryZipCode() {
String CountryID = "";
String CountryZipCode = "";
TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
//getNetworkCountryIso
CountryID = manager.getSimCountryIso().toUpperCase();
Log.v(Constant.TAG, "CountryID" + CountryID);
String[] rl = this.getResources().getStringArray(R.array.CountryCodes);
for (int i = 0; i < rl.length; i++) {
String[] g = rl[i].split(",");
if (g[1].trim().equals(CountryID.trim())) {
CountryZipCode = g[0];
break;
}
}
return CountryZipCode;
}
и CountryCodes
Вы должны поместить следующую строку в строке XML
<string-array name="CountryCodes" >
<item>93,AF</item>
<item>355,AL</item>
<item>213,DZ</item>
<item>376,AD</item>
<item>244,AO</item>
<item>672,AQ</item>
<item>54,AR</item>
<item>374,AM</item>
<item>297,AW</item>
<item>61,AU</item>
<item>43,AT</item>
<item>994,AZ</item>
<item>973,BH</item>
<item>880,BD</item>
<item>375,BY</item>
<item>32,BE</item>
<item>501,BZ</item>
<item>229,BJ</item>
<item>975,BT</item>
<item>591,BO</item>
<item>387,BA</item>
<item>267,BW</item>
<item>55,BR</item>
<item>673,BN</item>
<item>359,BG</item>
<item>226,BF</item>
<item>95,MM</item>
<item>257,BI</item>
<item>855,KH</item>
<item>237,CM</item>
<item>1,CA</item>
<item>238,CV</item>
<item>236,CF</item>
<item>235,TD</item>
<item>56,CL</item>
<item>86,CN</item>
<item>61,CX</item>
<item>61,CC</item>
<item>57,CO</item>
<item>269,KM</item>
<item>242,CG</item>
<item>243,CD</item>
<item>682,CK</item>
<item>506,CR</item>
<item>385,HR</item>
<item>53,CU</item>
<item>357,CY</item>
<item>420,CZ</item>
<item>45,DK</item>
<item>253,DJ</item>
<item>670,TL</item>
<item>593,EC</item>
<item>20,EG</item>
<item>503,SV</item>
<item>240,GQ</item>
<item>291,ER</item>
<item>372,EE</item>
<item>251,ET</item>
<item>500,FK</item>
<item>298,FO</item>
<item>679,FJ</item>
<item>358,FI</item>
<item>33,FR</item>
<item>689,PF</item>
<item>241,GA</item>
<item>220,GM</item>
<item>995,GE</item>
<item>49,DE</item>
<item>233,GH</item>
<item>350,GI</item>
<item>30,GR</item>
<item>299,GL</item>
<item>502,GT</item>
<item>224,GN</item>
<item>245,GW</item>
<item>592,GY</item>
<item>509,HT</item>
<item>504,HN</item>
<item>852,HK</item>
<item>36,HU</item>
<item>91,IN</item>
<item>62,ID</item>
<item>98,IR</item>
<item>964,IQ</item>
<item>353,IE</item>
<item>44,IM</item>
<item>972,IL</item>
<item>39,IT</item>
<item>225,CI</item>
<item>81,JP</item>
<item>962,JO</item>
<item>7,KZ</item>
<item>254,KE</item>
<item>686,KI</item>
<item>965,KW</item>
<item>996,KG</item>
<item>856,LA</item>
<item>371,LV</item>
<item>961,LB</item>
<item>266,LS</item>
<item>231,LR</item>
<item>218,LY</item>
<item>423,LI</item>
<item>370,LT</item>
<item>352,LU</item>
<item>853,MO</item>
<item>389,MK</item>
<item>261,MG</item>
<item>265,MW</item>
<item>60,MY</item>
<item>960,MV</item>
<item>223,ML</item>
<item>356,MT</item>
<item>692,MH</item>
<item>222,MR</item>
<item>230,MU</item>
<item>262,YT</item>
<item>52,MX</item>
<item>691,FM</item>
<item>373,MD</item>
<item>377,MC</item>
<item>976,MN</item>
<item>382,ME</item>
<item>212,MA</item>
<item>258,MZ</item>
<item>264,NA</item>
<item>674,NR</item>
<item>977,NP</item>
<item>31,NL</item>
<item>599,AN</item>
<item>687,NC</item>
<item>64,NZ</item>
<item>505,NI</item>
<item>227,NE</item>
<item>234,NG</item>
<item>683,NU</item>
<item>850,KP</item>
<item>47,NO</item>
<item>968,OM</item>
<item>92,PK</item>
<item>680,PW</item>
<item>507,PA</item>
<item>675,PG</item>
<item>595,PY</item>
<item>51,PE</item>
<item>63,PH</item>
<item>870,PN</item>
<item>48,PL</item>
<item>351,PT</item>
<item>1,PR</item>
<item>974,QA</item>
<item>40,RO</item>
<item>7,RU</item>
<item>250,RW</item>
<item>590,BL</item>
<item>685,WS</item>
<item>378,SM</item>
<item>239,ST</item>
<item>966,SA</item>
<item>221,SN</item>
<item>381,RS</item>
<item>248,SC</item>
<item>232,SL</item>
<item>65,SG</item>
<item>421,SK</item>
<item>386,SI</item>
<item>677,SB</item>
<item>252,SO</item>
<item>27,ZA</item>
<item>82,KR</item>
<item>34,ES</item>
<item>94,LK</item>
<item>290,SH</item>
<item>508,PM</item>
<item>249,SD</item>
<item>597,SR</item>
<item>268,SZ</item>
<item>46,SE</item>
<item>41,CH</item>
<item>963,SY</item>
<item>886,TW</item>
<item>992,TJ</item>
<item>255,TZ</item>
<item>66,TH</item>
<item>228,TG</item>
<item>690,TK</item>
<item>676,TO</item>
<item>216,TN</item>
<item>90,TR</item>
<item>993,TM</item>
<item>688,TV</item>
<item>971,AE</item>
<item>256,UG</item>
<item>44,GB</item>
<item>380,UA</item>
<item>598,UY</item>
<item>1,US</item>
<item>998,UZ</item>
<item>678,VU</item>
<item>39,VA</item>
<item>58,VE</item>
<item>84,VN</item>
<item>681,WF</item>
<item>967,YE</item>
<item>260,ZM</item>
<item>263,ZW</item>
</string-array>
создать JSONObject с названием страны и значения с кодами стран. , например.
JSONObject json=new JSONObject(); json.putString('COuntry Name','Country COde');
и сохранить это в prefrences
и получить то же использование json.getString('Country Name')
я улучшил Влад ответ. Поскольку инициализировать HashMap
каждый раз, когда вы обращаетесь к методу, это очень плохая практика. Если вы не инициализируете карту один раз. Отредактированный ответ:
public String getCountryCode(String countryName) {
String[] isoCountryCodes = Locale.getISOCountries();
for (String code : isoCountryCodes) {
Locale locale = new Locale("", code);
if (countryName.equalsIgnoreCase(locale.getDisplayCountry())) {
return code;
}
}
return "";
}
- 1. C# получить код страны A2 Iso от имени страны
- 2. Язык Android для страны Код страны Код
- 3. Android получить код страны Код
- 4. Magento: Получить код страны по названию страны
- 5. libphonenumber ios получить код страны для страны
- 6. Android Код smsMessage код страны
- 7. Android Код страны
- 8. Получить код страны
- 9. название страны - возврат код страны
- 10. Как получить код страны ISO от имени страны в XSLT 2.0
- 11. получить код страны
- 12. получить код страны iso
- 13. получить код страны iso3
- 14. Координаты/Регион от имени страны
- 15. Ресурс Android - массив для хранения имени страны/кода страны
- 16. Как получить код страны в Android
- 17. Неверный код страны от CurrentCulture
- 18. Преобразовать код страны в название страны
- 19. Как принять country_iso_code от выбранного имени страны от spinner android
- 20. Как получить код страны из определенной страны в C#?
- 21. Как получить код страны и название страны, используя IP
- 22. Получить код страны и страны (ISO 639-1)
- 23. Получить код страны и страны с javascript (на стороне клиента)
- 24. Получить код телефона из страны или страны - Twilio
- 25. Как получить код страны, например, +91, +1, +65 от имени страны, такого как IN, US, SG на Android?
- 26. ISO Данные страны/страны
- 27. Как получить код страны или префикс страны с номера мобильного телефона, который не содержит кода страны
- 28. C#: Получить название страны из кода страны
- 29. код страны входящих вызовов в android
- 30. Получение названия страны android
Класс Locale может вам помочь. – njzk2
Я просмотрел его, но не нашел метода, который должен был сделать трюк. – Tristus
вы можете перечислить доступные локали и сравнить название страны. – njzk2