我希望在 Swift 中获取一个 Integer
并将其转换为罗马数字 String
。有什么想法吗?
最佳答案
可以在 Int
上写一个扩展,类似于下面看到的。
请注意:对于小于一的数字,此代码将返回 ""。虽然就罗马数字而言这可能没问题(零不存在),但您可能希望在自己的实现中以不同方式处理此问题。
extension Int {
var romanNumeral: String {
var integerValue = self
var numeralString = ""
let mappingList: [(Int, String)] = [(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"), (50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I")]
for i in mappingList {
while (integerValue >= i.0) {
integerValue -= i.0
numeralString += i.1
}
}
return numeralString
}
}
也感谢 Kenneth Bruno 提出的一些改进代码的建议。
关于swift - 在 Swift 中将整数转换为罗马数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36068104/