- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将带有数字的字符串格式化为如下所示:XX XX XX
(例如12 34 56
)
我使用带有分组分隔符的 NSNumberFormatter
:
let formatter = NSNumberFormatter()
formatter.usesGroupingSeparator = true
formatter.groupingSize = 2
formatter.groupingSeparator = " "
if let number = Int(theText.stringByReplacingOccurrencesOfString(" ", withString: "")) {
let numberToFormat = NSNumber(integer:number)
textField.text = formatter.stringFromNumber(numberToFormat)
}
如果您输入数字123456
,这将正常工作 - 它的格式为12 34 56
我在 shouldChangeCharactersInRange
方法中使用它,因此它应该在您键入时格式化数字。分组分隔符定义数字按右侧的 groupingSize
值进行分组,因此当您输入 123456
时,文本会发生以下变化:
1
12
1 23
12 34
1 23 45
12 34 45
我想将其格式化如下:
1
12
12 3
12 34
12 34 5
12 34 56
是否可以定义从哪一侧分组分隔符对数字进行分组?
最佳答案
不确定是否必须转换为 Int
,在末尾添加一个“0”怎么样?然后去掉最后一个“0”。
let formatter = NSNumberFormatter()
formatter.usesGroupingSeparator = true
formatter.groupingSize = 2
formatter.groupingSeparator = " "
var str = "12345"
if str.characters.count % 2 != 0 {
str += "0"
}
if let number = Int(str.stringByReplacingOccurrencesOfString(" ", withString: "")) {
let numberToFormat = NSNumber(integer:number)
formatter.stringFromNumber(numberToFormat)
}
另一种解决方案:
let string = "12345"
var results = [String]()
for index in 0 ..< string.characters.count-1 {
if index % 2 == 0 {
let range = NSRange(location: index, length: 2)
results.append((string as NSString).substringWithRange(range))
}
}
if string.characters.count % 2 != 0 {
let last = (string as NSString).substringFromIndex(string.characters.count-1)
results.append(last)
}
关于ios - NSNumberFormatter 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37456328/
这个问题在这里已经有了答案: Inappropriate Expected declaration error (1 个回答) 关闭 7 年前。 我正在阅读我的 swift 书并边做边建。我在使用这
这是我的代码片段,我不知道如何舍入双数。 double m = [tmpProduct.msrp doubleValue] ; double d = [tmpProduct.discountPric
它看起来像是NSNumberFormatter 的 方法,用于设置自定义格式化程序。 setFormat: 在 iPhone 上不可用... 所以这......使我的应用程序崩溃: NSNumberF
我在 NSTableView 的单元格中使用了 NSNUmberFormatter。这个 NSNUmberFormatter 是从 IB 库中拖出来并放入 TableView 单元格中的。然后从检查器
我对 NSNumberFormatter 的使用感到完全困惑。这应该非常简单,但我无法让它工作。 我想设置一个 NSTextField 以允许输入带小数点或不带小数点的十进制数字。这是我认为可行的:
我想将 NSDecimalNumber 格式化为美元值(1.50 美元),但我遇到了崩溃。 这是我的方法: +(NSString*) formatPriceForUser:(NSDecimalNumb
以下代码无法正常工作: //[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; formatter.maximumFractionDig
我正在开发一个适用于 double 的计算器应用程序,然后当您按下等于时,操作是使用 double 完成的,然后切换到 NSNumberFormatter。我的问题是当用户想要在屏幕上的答案中添加(或
有人问过类似的问题,但我发现提供的解决方案不适用于最新的 iOS SDK,或者不完全适用于这种特殊情况。 我使用 NSNotification 调用一个方法,该方法在 UILabel 中使用分组符号格
我的应用程序中有一个价格字段。我使用了 NSNumberFormatter 并且我正在使用核心数据存储和检索值。它在模拟器上运行良好,但设备上没有显示任何内容。 我还显示了在模拟器上运行正常但在设备上
我的问题是我目前使用的是 NSNumberFormatter 和 NSNumberFormatterDecimalStyle。我使用它是因为我想让逗号将每三个数字的数字隔开,就像当我把它变成一个字符串
我将收到美国 5.00 美元、日本 5.00 日元、欧洲 5.00 欧元等。但我不想要那样。我想在每个地区都获得相同的东西:美国 5.00 美元,日本 5.00 美元,欧洲 5.00 美元。这是我尝试
我有一个字符串,其货币格式为本地货币。例如10000 丹麦克朗 将 (10.000,00)当转换为双倍值时,它只读为 10。我试过这个片段 NSString * locale ; if(loc
我的代码是: NSString *price = @"0.29000"; NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; [f set
我正在制作一个包含多个文本字段的应用程序。我希望当用户在文本字段中输入数字时,编辑结束时自动添加百分比符号。现在,我知道如何做到这一点的唯一方法是将文本值转换为 float ,然后使用 NSNumbe
我已经设置了一个 NSNumberFormatter 如下: formatter = [[NSNumberFormatter alloc] init]; [formatter setNumberSty
我需要格式化数字和货币符号,我使用以下代码。我面临的问题是该数字四舍五入为 34.80,这仅适用于某些货币,如果我在下面的代码中将货币代码更改为“INR”,结果显示的金额没有四舍五入。 NSDecim
处理整数、NSString 和 NSNumberFormatter 的最佳方法是什么? 我有一个带有 UITextField 的应用程序,用户可以在其中输入数字。通过 UITextField 中的每一
我正在尝试获取 NSNumberFormatter 来显示货币。我有两个 UILabels,两者都由相同的 NSNumberFormatter 格式化,但第一个被括号包围。这是我的代码: NS
我有一个奇怪的问题。它似乎只出现在测试者的 iPhone 5s 上。它可以在运行最新 iOS (8.3) 的 iPhone 5、6 和 6 plus 上正常运行。 这是代码 -(NSString *)
我是一名优秀的程序员,十分优秀!