0

電話の名簿から電話番号を読んでいます。いくつかの番号はアラビア数字以外の番号で保存されています。つまり、(١٢٣٤٥٦٧٨٩)これらの番号をアラビア数字に変換するにはどうすればよいですか(123456789)

それが私が数字を抽出する方法です

    CFTypeRef phoneProperty = ABRecordCopyValue(record, kABPersonPhoneProperty);
    NSArray *phones = (__bridge_transfer NSArray *)ABMultiValueCopyArrayOfAllValues(phoneProperty);

これで、電話にはNSStringオブジェクトとして電話番号が含まれます

4

3 に答える 3

4

テスト済み:

-(NSString*)arabicToWestern:(NSString)numericString {
   NSMutableString *s = [NSMutableString stringWithString:numericString];
   NSString *arabic = @"١٢٣٤٥٦٧٨٩";
   NSString *western = @"123456789";
   for (uint i = 0; i<arabic.length; i++) {
      NSString *a = [arabic substringWithRange:NSMakeRange(i, 1)];
      NSString *w = [western substringWithRange:NSMakeRange(i, 1)];
      [s replaceOccurrencesOfString:a withString:w 
                            options:NSCaseInsensitiveSearch
                              range:NSMakeRange(0, s.length)];
   }
   return [NSString stringWithString:s];
}
于 2012-08-01T08:13:46.067 に答える
0

変換したい数値を文字列に変換するメソッドを作成し、2つの異なる数字システム間をマッピングする辞書があるメソッドにそれらを渡して、結果を返すのが良い簡単な方法だと思います。

    private string convertDigits(string easternArabicnumbers)
    {
        string result = "";
        var digitMapping = new Dictionary<string,string>;
        digitMapping.Add("١","1");
        digitMapping.Add("٢","2");
        digitMapping.Add("٣","3");
        digitMapping.Add("٤","4");
        digitMapping.Add("٥","5");
        digitMapping.Add("٦","6");
        digitMapping.Add("٧","7");
        digitMapping.Add("٨","8");
        digitMapping.Add("٩","9");
        digitMapping.Add("٠","0");
        foreach(var digit in  easternArabicnumbers)
        {
         if (digitMapping.ContainsKey(digit))
          {
            result = result + digitMapping[digit];
          }
         return result;
        }
    }
于 2012-08-01T07:50:14.157 に答える
0

これを使って:

- (NSString *)ConvertNumToFarsi:(NSString *)EnglishNumString {

NSString *myString = [EnglishNumString stringByReplacingOccurrencesOfString:@"1" withString:@"۱"];
myString = [myString stringByReplacingOccurrencesOfString:@"2" withString:@"۲"];
myString =[myString stringByReplacingOccurrencesOfString:@"3" withString:@"۳"];
myString =[myString stringByReplacingOccurrencesOfString:@"4" withString:@"۴"];
myString =[myString stringByReplacingOccurrencesOfString:@"5" withString:@"۵"];
myString =[myString stringByReplacingOccurrencesOfString:@"6" withString:@"۶"];
myString =[myString stringByReplacingOccurrencesOfString:@"7" withString:@"۷"];
myString =[myString stringByReplacingOccurrencesOfString:@"8" withString:@"۸"];
myString =[myString stringByReplacingOccurrencesOfString:@"9" withString:@"۹"];
myString =[myString stringByReplacingOccurrencesOfString:@"0" withString:@"۰"];
return myString;

}

于 2013-09-14T11:46:25.017 に答える