NSString+NSString_CountryCode.m 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. //
  2. // NSString+NSString_CountryCode.m
  3. // Keywords_ad_Create
  4. //
  5. // Created by Liam Pro on 16-5-16.
  6. // Copyright (c) 2016年 Liam Pro. All rights reserved.
  7. //
  8. #import "NSString+NSString_CountryCode.h"
  9. @implementation NSString (NSString_CountryCode)
  10. +(NSMutableArray *)CountryInfoList{
  11. NSMutableArray *arr = [[NSMutableArray alloc] init];
  12. [arr addObject:@"AD,安道尔共和国,Andorra,376"];
  13. [arr addObject:@"AE,阿拉伯联合酋长国,United Arab Emirates,971"];
  14. [arr addObject:@"AF,阿富汗,Afghanistan,93"];
  15. [arr addObject:@"AG,安提瓜和巴布达,Antigua and Barbuda,1268"];
  16. [arr addObject:@"AI,安圭拉岛,Anguilla,1264"];
  17. [arr addObject:@"AL,阿尔巴尼亚,Albania,355"];
  18. [arr addObject:@"AM,亚美尼亚,Armenia,374"];
  19. [arr addObject:@"AO,安哥拉,Angola,244"];
  20. [arr addObject:@"AR,阿根廷,Argentina,54"];
  21. [arr addObject:@"AT,奥地利,Austria,43"];
  22. [arr addObject:@"AU,澳大利亚,Australia,61"];
  23. [arr addObject:@"AZ,阿塞拜疆,Azerbaijan,994"];
  24. [arr addObject:@"BB,巴巴多斯,Barbados,1246"];
  25. [arr addObject:@"BD,孟加拉国,Bangladesh,880"];
  26. [arr addObject:@"BE,比利时,Belgium,32"];
  27. [arr addObject:@"BF,布基纳法索,Burkina-faso,226"];
  28. [arr addObject:@"BG,保加利亚,Bulgaria,359"];
  29. [arr addObject:@"BH,巴林,Bahrain,973"];
  30. [arr addObject:@"BI,布隆迪,Burundi,257"];
  31. [arr addObject:@"BJ,贝宁,Benin,229"];
  32. [arr addObject:@"BL,巴勒斯坦,Palestine,970"];
  33. [arr addObject:@"BM,百慕大群岛,Bermuda Is.,1441"];
  34. [arr addObject:@"BN,文莱,Brunei,673"];
  35. [arr addObject:@"BO,玻利维亚,Bolivia,591"];
  36. [arr addObject:@"BR,巴西,Brazil,55"];
  37. [arr addObject:@"BS,巴哈马,Bahamas,1242"];
  38. [arr addObject:@"BW,博茨瓦纳,Botswana,267"];
  39. [arr addObject:@"BY,白俄罗斯,Belarus,375"];
  40. [arr addObject:@"BZ,伯利兹,Belize,501"];
  41. [arr addObject:@"CA,加拿大,Canada,1"];
  42. [arr addObject:@"CF,中非共和国,Central African Republic,236"];
  43. [arr addObject:@"CG,刚果,Congo,242"];
  44. [arr addObject:@"CH,瑞士,Switzerland,41"];
  45. [arr addObject:@"CK,库克群岛,Cook Is.,682"];
  46. [arr addObject:@"CL,智利,Chile,56"];
  47. [arr addObject:@"CM,喀麦隆,Cameroon,237"];
  48. [arr addObject:@"CN,中国,China,86"];
  49. [arr addObject:@"CO,哥伦比亚,Colombia,57"];
  50. [arr addObject:@"CR,哥斯达黎加,Costa Rica,506"];
  51. [arr addObject:@"CU,古巴,Cuba,53"];
  52. [arr addObject:@"CY,塞浦路斯,Cyprus,357"];
  53. [arr addObject:@"CZ,捷克,Czech Republic,420"];
  54. [arr addObject:@"DE,德国,Germany,49"];
  55. [arr addObject:@"DJ,吉布提,Djibouti,253"];
  56. [arr addObject:@"DK,丹麦,Denmark,45"];
  57. [arr addObject:@"DO,多米尼加共和国,Dominica Rep.,1890"];
  58. [arr addObject:@"DZ,阿尔及利亚,Algeria,213"];
  59. [arr addObject:@"EC,厄瓜多尔,Ecuador,593"];
  60. [arr addObject:@"EE,爱沙尼亚,Estonia,372"];
  61. [arr addObject:@"EG,埃及,Egypt,20"];
  62. [arr addObject:@"ES,西班牙,Spain,34"];
  63. [arr addObject:@"ET,埃塞俄比亚,Ethiopia,251"];
  64. [arr addObject:@"FI,芬兰,Finland,358"];
  65. [arr addObject:@"FJ,斐济,Fiji,679"];
  66. [arr addObject:@"FR,法国,France,33"];
  67. [arr addObject:@"GA,加蓬,Gabon,241"];
  68. [arr addObject:@"GB,英国,United Kiongdom,44"];
  69. [arr addObject:@"GD,格林纳达,Grenada,1809"];
  70. [arr addObject:@"GE,格鲁吉亚,Georgia,995"];
  71. [arr addObject:@"GF,法属圭亚那,French Guiana,594"];
  72. [arr addObject:@"GH,加纳,Ghana,233"];
  73. [arr addObject:@"GI,直布罗陀,Gibraltar,350"];
  74. [arr addObject:@"GM,冈比亚,Gambia,220"];
  75. [arr addObject:@"GN,几内亚,Guinea,224"];
  76. [arr addObject:@"GR,希腊,Greece,30"];
  77. [arr addObject:@"GT,危地马拉,Guatemala,502"];
  78. [arr addObject:@"GU,关岛,Guam,1671"];
  79. [arr addObject:@"GY,圭亚那,Guyana,592"];
  80. [arr addObject:@"HK,香港特别行政区,Hongkong,852"];
  81. [arr addObject:@"HN,洪都拉斯,Honduras,504"];
  82. [arr addObject:@"HT,海地,Haiti,509"];
  83. [arr addObject:@"HU,匈牙利,Hungary,36"];
  84. [arr addObject:@"ID,印度尼西亚,Indonesia,62"];
  85. [arr addObject:@"IE,爱尔兰,Ireland,353"];
  86. [arr addObject:@"IL,以色列,Israel,972"];
  87. [arr addObject:@"IN,印度,India,91"];
  88. [arr addObject:@"IQ,伊拉克,Iraq,964"];
  89. [arr addObject:@"IR,伊朗,Iran,98"];
  90. [arr addObject:@"IS,冰岛,Iceland,354"];
  91. [arr addObject:@"IT,意大利,Italy,39"];
  92. [arr addObject:@"JM,牙买加,Jamaica,1876"];
  93. [arr addObject:@"JO,约旦,Jordan,962"];
  94. [arr addObject:@"JP,日本,Japan,81"];
  95. [arr addObject:@"KE,肯尼亚,Kenya,254"];
  96. [arr addObject:@"KG,吉尔吉斯坦,Kyrgyzstan,331"];
  97. [arr addObject:@"KH,柬埔寨,Kampuchea (Cambodia ),855"];
  98. [arr addObject:@"KP,朝鲜,North Korea,850"];
  99. [arr addObject:@"KR,韩国,Korea,82"];
  100. [arr addObject:@"KT,科特迪瓦共和国,Republic of Ivory Coast,225"];
  101. [arr addObject:@"KW,科威特,Kuwait,965"];
  102. [arr addObject:@"KZ,哈萨克斯坦,Kazakstan327"];
  103. [arr addObject:@"LA,老挝,Laos,856"];
  104. [arr addObject:@"LB,黎巴嫩,Lebanon,961"];
  105. [arr addObject:@"LC,圣卢西亚,St.Lucia,1758"];
  106. [arr addObject:@"LI,列支敦士登,Liechtenstein,423"];
  107. [arr addObject:@"LK,斯里兰卡,Sri Lanka,94"];
  108. [arr addObject:@"LR,利比里亚,Liberia,231"];
  109. [arr addObject:@"LS,莱索托,Lesotho,266"];
  110. [arr addObject:@"LT,立陶宛,Lithuania,370"];
  111. [arr addObject:@"LU,卢森堡,Luxembourg,352"];
  112. [arr addObject:@"LV,拉脱维亚,Latvia,371"];
  113. [arr addObject:@"LY,利比亚,Libya,218"];
  114. [arr addObject:@"MA,摩洛哥,Morocco,212"];
  115. [arr addObject:@"MC,摩纳哥,Monaco,377"];
  116. [arr addObject:@"MD,摩尔多瓦,Moldova, Republic of,373"];
  117. [arr addObject:@"MG,马达加斯加,Madagascar,261"];
  118. [arr addObject:@"ML,马里,Mali,223"];
  119. [arr addObject:@"MM,缅甸,Burma,95"];
  120. [arr addObject:@"MN,蒙古,Mongolia,976"];
  121. [arr addObject:@"MO,澳门,Macao,853"];
  122. [arr addObject:@"MS,蒙特塞拉特岛,Montserrat Is,1664"];
  123. [arr addObject:@"MT,马耳他,Malta,356"];
  124. [arr addObject:@"MU,毛里求斯,Mauritius,230"];
  125. [arr addObject:@"MV,马尔代夫,Maldives,960"];
  126. [arr addObject:@"MW,马拉维,Malawi,265"];
  127. [arr addObject:@"MX,墨西哥,Mexico,52"];
  128. [arr addObject:@"MY,马来西亚,Malaysia,60"];
  129. [arr addObject:@"MZ,莫桑比克,Mozambique,258"];
  130. [arr addObject:@"NA,纳米比亚,Namibia,264"];
  131. [arr addObject:@"NE,尼日尔,Niger,977"];
  132. [arr addObject:@"NG,尼日利亚,Nigeria,234"];
  133. [arr addObject:@"NI,尼加拉瓜,Nicaragua,505"];
  134. [arr addObject:@"NL,荷兰,Netherlands,31"];
  135. [arr addObject:@"NO,挪威,Norway,47"];
  136. [arr addObject:@"NP,尼泊尔,Nepal,977"];
  137. [arr addObject:@"NR,瑙鲁,Nauru,674"];
  138. [arr addObject:@"NZ,新西兰,New Zealand,64"];
  139. [arr addObject:@"OM,阿曼,Oman,968"];
  140. [arr addObject:@"PA,巴拿马,Panama,507"];
  141. [arr addObject:@"PE,秘鲁,Peru,51"];
  142. [arr addObject:@"PF,法属玻利尼西亚,French Polynesia,689"];
  143. [arr addObject:@"PG,巴布亚新几内亚,Papua New Cuinea,675"];
  144. [arr addObject:@"PH,菲律宾,Philippines,63"];
  145. [arr addObject:@"PK,巴基斯坦,Pakistan,92"];
  146. [arr addObject:@"PL,波兰,Poland,48"];
  147. [arr addObject:@"PR,波多黎各,Puerto Rico,1787"];
  148. [arr addObject:@"PT,葡萄牙,Portugal,351"];
  149. [arr addObject:@"PY,巴拉圭,Paraguay,595"];
  150. [arr addObject:@"QA,卡塔尔,Qatar,974"];
  151. [arr addObject:@"RO,罗马尼亚,Romania,40"];
  152. [arr addObject:@"RU,俄罗斯,Russia,7"];
  153. [arr addObject:@"SA,沙特阿拉伯,Saudi Arabia,966"];
  154. [arr addObject:@"SB,所罗门群岛,Solomon Is,677"];
  155. [arr addObject:@"SC,塞舌尔,Seychelles,248"];
  156. [arr addObject:@"SD,苏丹,Sudan,249"];
  157. [arr addObject:@"SE,瑞典,Sweden,46"];
  158. [arr addObject:@"SG,新加坡,Singapore,65"];
  159. [arr addObject:@"SI,斯洛文尼亚,Slovenia,386"];
  160. [arr addObject:@"SK,斯洛伐克,Slovakia,421"];
  161. [arr addObject:@"SL,塞拉利昂,Sierra Leone,232"];
  162. [arr addObject:@"SM,圣马力诺,San Marino,378"];
  163. [arr addObject:@"SN,塞内加尔,Senegal,221"];
  164. [arr addObject:@"SO,索马里,Somali,252"];
  165. [arr addObject:@"SR,苏里南,Suriname,597"];
  166. [arr addObject:@"ST,圣多美和普林西比,Sao Tome and Principe,239"];
  167. [arr addObject:@"SV,萨尔瓦多,EI Salvador,503"];
  168. [arr addObject:@"SY,叙利亚,Syria,963"];
  169. [arr addObject:@"SZ,斯威士兰,Swaziland,268"];
  170. [arr addObject:@"TD,乍得,Chad,235"];
  171. [arr addObject:@"TG,多哥,Togo,228"];
  172. [arr addObject:@"TH,泰国,Thailand,66"];
  173. [arr addObject:@"TJ,塔吉克斯坦,Tajikstan,992"];
  174. [arr addObject:@"TM,土库曼斯坦,Turkmenistan,993"];
  175. [arr addObject:@"TN,突尼斯,Tunisia,216"];
  176. [arr addObject:@"TO,汤加,Tonga,676"];
  177. [arr addObject:@"TR,土耳其,Turkey,90"];
  178. [arr addObject:@"TT,特立尼达和多巴哥,Trinidad and Tobago,1809"];
  179. [arr addObject:@"TW,台湾省,Taiwan,886"];
  180. [arr addObject:@"TZ,坦桑尼亚,Tanzania,255"];
  181. [arr addObject:@"UA,乌克兰,Ukraine,380"];
  182. [arr addObject:@"UG,乌干达,Uganda,256"];
  183. [arr addObject:@"US,美国,United States of America,1"];
  184. [arr addObject:@"UY,乌拉圭,Uruguay,598"];
  185. [arr addObject:@"UZ,乌兹别克斯坦,Uzbekistan,233"];
  186. [arr addObject:@"VC,圣文森特岛,Saint Vincent,1784"];
  187. [arr addObject:@"VE,委内瑞拉,Venezuela,58"];
  188. [arr addObject:@"VN,越南,Vietnam,84"];
  189. [arr addObject:@"YE,也门,Yemen,967"];
  190. [arr addObject:@"YU,南斯拉夫,Yugoslavia,381"];
  191. [arr addObject:@"ZA,南非,South Africa,27"];
  192. [arr addObject:@"ZM,赞比亚,Zambia,260"];
  193. [arr addObject:@"ZR,扎伊尔,Zaire,243"];
  194. [arr addObject:@"ZW,津巴布韦,Zimbabwe,263"];
  195. return arr;
  196. }
  197. -(BOOL)findString:(NSString *)asub{
  198. if (asub==nil) {
  199. return NO;
  200. }
  201. NSRange range;
  202. range = [self rangeOfString:asub];
  203. if (range.location != NSNotFound) {
  204. return YES;
  205. }else{
  206. return NO;
  207. }
  208. }
  209. +(NSString *)getCountryName:(NSString *)aCode{
  210. aCode = [aCode uppercaseStringWithLocale:[NSLocale currentLocale]];
  211. NSMutableArray *countryList = [NSString CountryInfoList];
  212. for (NSString *s in countryList) {
  213. NSArray *arry=[s componentsSeparatedByString:@","];
  214. NSString *str = [arry objectAtIndex:0];
  215. if ([str isEqualToString:aCode]) {
  216. return [arry objectAtIndex:1];
  217. }
  218. }
  219. return @"";
  220. }
  221. +(NSString *)getCountryCode:(NSString *)aName{
  222. NSMutableArray *countryList = [NSString CountryInfoList];
  223. for (NSString *s in countryList) {
  224. NSArray *arry=[s componentsSeparatedByString:@","];
  225. NSString *str = [arry objectAtIndex:1];
  226. if ([str isEqualToString:aName]) {
  227. return [arry objectAtIndex:0];
  228. }
  229. }
  230. for (NSString *s in countryList) {
  231. NSArray *arry=[s componentsSeparatedByString:@","];
  232. NSString *str = [arry objectAtIndex:1];
  233. if ([str findString:aName]) {
  234. return [arry objectAtIndex:0];
  235. }
  236. }
  237. return @"";
  238. }
  239. -(float)GetPriceFromAdsName{
  240. NSRange range = [self rangeOfString:@"@"];
  241. if ([self findString:@"@"]) {
  242. NSString *substring = [[self substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  243. if ([substring findString:@"@"]) {
  244. range = [substring rangeOfString:@"@"];
  245. substring = [[substring substringToIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  246. float res = [substring floatValue];
  247. return res;
  248. }
  249. }
  250. return 0.0;
  251. }
  252. -(NSString *)GetPriceFromAdsNameString{
  253. NSRange range = [self rangeOfString:@"@"];
  254. if ([self findString:@"@"]) {
  255. NSString *substring = [[self substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  256. if ([substring findString:@"@"]) {
  257. range = [substring rangeOfString:@"@"];
  258. substring = [[substring substringToIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
  259. return [NSString stringWithFormat:@"@%@",substring];
  260. }
  261. }
  262. return nil;
  263. }
  264. -(NSString *)GetAgeStrFromAdsNameString{
  265. // A澳大利亚_FastestClean-Image21-CPM-0716_男_25~65_20160716_@1.26@
  266. NSArray *array = [self componentsSeparatedByString:@"_"];
  267. NSString *ageStr = @"";
  268. for (int i=0; i<array.count; i++) {
  269. NSString *s = [array objectAtIndex:i];
  270. if ([s isEqualToString:@"男"]||[s isEqualToString:@"女"]||[s isEqualToString:@"全"]) {
  271. ageStr = [NSString stringWithFormat:@"%@,%@",s,[array objectAtIndex:i+1]];
  272. break;
  273. }
  274. }
  275. if (ageStr.length>2) {
  276. return ageStr;
  277. }
  278. return nil;
  279. }
  280. -(NSString *)GetCountryStrFromAdsNameString{
  281. // A澳大利亚_FastestClean-Image21-CPM-0716_男_25~65_20160716_@1.26@
  282. NSArray *array = [self componentsSeparatedByString:@"_"];
  283. NSString *countryStr = [array objectAtIndex:0];
  284. if ([countryStr findString:@"A高端"]||[countryStr findString:@"A低端"]||[countryStr findString:@"所有"]||[countryStr findString:@"全世界"]) {
  285. return countryStr;
  286. }
  287. countryStr = [countryStr substringFromIndex:1];
  288. NSString *countryCode = [NSString getCountryCode:countryStr];
  289. if (countryCode.length>1) {
  290. return countryStr;
  291. }
  292. return nil;
  293. }
  294. +(NSDictionary *)getDicFromJson:(NSString *)JsonStr{
  295. NSData *data = [JsonStr dataUsingEncoding:NSUTF8StringEncoding];
  296. NSDictionary * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
  297. return json;
  298. }
  299. +(NSArray *)getArrayFromJson:(NSString *)JsonStr{
  300. NSData *data = [JsonStr dataUsingEncoding:NSUTF8StringEncoding];
  301. NSArray * json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
  302. return json;
  303. }
  304. - (BOOL)isIntNumber{
  305. NSScanner* scan = [NSScanner scannerWithString:self];
  306. int val;
  307. return[scan scanInt:&val] && [scan isAtEnd];
  308. }
  309. - (BOOL)isFloatNumber{
  310. NSScanner* scan = [NSScanner scannerWithString:self];
  311. float val;
  312. return[scan scanFloat:&val] && [scan isAtEnd];
  313. }
  314. -(int)TimeDistance{
  315. NSDateFormatter *date=[[NSDateFormatter alloc] init];
  316. [date setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
  317. NSDate *d=[date dateFromString:self];
  318. NSInteger unitFlags = NSDayCalendarUnit| NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
  319. NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
  320. NSDateComponents *comps = [cal components:unitFlags fromDate:d];
  321. NSDate *newBegin = [cal dateFromComponents:comps];
  322. // 当前时间
  323. NSCalendar *cal2 = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
  324. NSDateComponents *comps2 = [cal2 components:unitFlags fromDate:[NSDate date]];
  325. NSDate *newEnd = [cal2 dateFromComponents:comps2];
  326. NSTimeInterval interval = [newEnd timeIntervalSinceDate:newBegin];
  327. NSInteger resultDays=((NSInteger)interval)/(60);
  328. return (int) resultDays;
  329. }
  330. - (int)convertToInt
  331. {
  332. int strlength = 0;
  333. char* p = (char*)[self cStringUsingEncoding:NSUnicodeStringEncoding];
  334. for (int i=0 ; i<[self lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
  335. if (*p) {
  336. p++;
  337. strlength++;
  338. }
  339. else {
  340. p++;
  341. }
  342. }
  343. return strlength;
  344. }
  345. @end