【问题标题】:specific number formatter to a phone number特定号码格式化程序到电话号码
【发布时间】:2011-09-08 10:54:48
【问题描述】:

我想按以下格式显示数字

格式为“123-456-7890”

我正在使用

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
[formatter setPositiveFormat:@"###-###-####"];
[formatter setLenient:YES];

amountField.text =[formatter stringFromNumber:[NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]]];
NSLog(@"%@",amountField.text);

我正在使用上面的代码来做到这一点,但代码没有反映.....并且输出显示为 1234567890 只有任何人才能帮助如何做到这一点。

【问题讨论】:

    标签: ios objective-c nsnumberformatter


    【解决方案1】:

    使用此格式化程序:

    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
        //[formatter setNumberStyle:NSNumberFormatterNoStyle];
        //[formatter setPositiveFormat:@"###-###-####"]; 
        [formatter setGroupingSeparator:@"-"];
        [formatter setGroupingSize:4];
        [formatter setUsesGroupingSeparator:YES];
           [formatter setSecondaryGroupingSize:3];
        //[formatter setLenient:YES];
        NSString *num = @"1234567890";
        NSString *str = [formatter stringFromNumber:[NSNumber numberWithInt:[num intValue]]];
        NSLog(@"%@",str); 
    

    【讨论】:

    • 产生“123-456-789”而不是请求的“123-456-7890”
    • [格式化程序 setGroupingSize:4]; [格式化程序 setSecondaryGroupingSize:3];我认为它会正常工作
    【解决方案2】:

    在那段代码中 检查

    tempStr = [NSString stringWithFormat:@"1(%@)%@-%@", areaCode, phone1, phone2];
    

    作为

    tempStr = [NSString stringWithFormat:@"%@-%@-%@", areaCode, phone1, phone2]
    

    在PhoneNumberFormatter.m中

    【讨论】:

      【解决方案3】:

      setPositiveFormat 将“-”分隔符视为减号。

      注意:见Number Format Patterns

      一种解决方法是指定“,”分隔符并替换它们:

      NSNumber *phoneNumber = [NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]];
      NSString *text =[formatter stringFromNumber:phoneNumber];
      amountField.text = [text stringByReplacingOccurrencesOfString:@"," withString:@"-"];
      

      【讨论】:

        【解决方案4】:

        斯威夫特:

        let numberFormatter = NumberFormatter()
        numberFormatter.groupingSeparator = "-"
        numberFormatter.groupingSize = 4
        numberFormatter.usesGroupingSeparator = true
        numberFormatter.secondaryGroupingSize = 3
        let number = "1234567890"
        let formattedNumber = numberFormatter.string(from: NSNumber(value: Int(number)!))
        print(formattedNumber as Any)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-07
          • 1970-01-01
          • 2020-02-05
          • 2015-10-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多