当值length == 1时,如何在值之前添加“0”

时间:2017-08-01 06:28:38

标签: ios swift xcode split

我有一个名为values = "2"的变量。现在当值length == 1我需要在值之前添加0时。如果值length ==2不需要做任何事情。我怎么能在之前添加0

当我尝试将int转换为string.And当我得到最后6位数时像:

Number = "123456789"

这时我试图获得最后5位数值。然后它的打印如下:

[ "7"  "8" "9" ")"  """  ]

如何单独提取数字..这是我的代码:

let Acc = info.TotalNo
  let U = "\(Acc)"
let AccountNos = String(U.characters.suffix(5))
let list = AccountNos.characters.map { String($0) }

然后它的印刷如下:

[ "7"  "8" "9" " closeBracket"  " double colon "  ]

但我想:

[ "5"  "6" "7" "8"  "9"  ]

我知道2个问题是不允许的。但是这两个让我打破更多的代码..请给我一些解决方案..

由于

6 个答案:

答案 0 :(得分:2)

你可以像这样格式化你的号码:

let format = "%02d"

let smallNumber = 2
let largerNumber = 13

let formattedSmallNumber = String(format: format, smallNumber)
// "02"
let formattedLargerNumber = String(format: format, largerNumber)
// "13"

答案 1 :(得分:1)

<强>更新 你得到一个可选的,所以这个代码应该运行正常

if let Acc = info.TotalNo {
  let U = "\(Acc)"
  let AccountNos = String(U.characters.suffix(5))
  let list = AccountNos.characters.map { String($0) }
}

我在代码中做了一些更改

let number = 123456789

let Acc = "\(number)"  //let U = "\(Acc)"
let AccountNos = String(Acc.characters.suffix(5))
let list = AccountNos.characters.map { String($0) }

print(list)

我认为您的解决方案存在问题

let Acc = info.TotalNo

你没有得到号码

如果你想要最后六位数

let number = "123456789"
let AccountNos = String(number.characters.suffix(6))
let list = AccountNos.characters.map { String($0) }

print(list)

现在在数字前加0前缀

let value = "2"
var newValue = ""

if value.characters.count == 1 {
    newValue = "0\(value)"
}

print(newValue)

答案 2 :(得分:1)

关于你的第一个问题,有两种方法都可以使用

Using NSMutableString:
var val: NSMutableString = "2"
if val.length == 1 {
  val.insert("0", at: 0)
}

Using String:
var val2 = "1"
if val2.characters.count == 1 {
   val2.insert("0", at: val2.startIndex)
}

关于你的第二个问题

let number = "123456789"
let string = number.substring(from: number.index(number.startIndex, 
offsetBy: 4))
var list = Array(string.characters)

答案 3 :(得分:0)

你走了 第一部分使用

if values.characters.count < 2 {
    values = "0\(values)"
}

第二部分你可以使用

var number = "123456789"
let Acc = "\(number)"
let AccountNos = String(Acc.characters.suffix(5))
let list = AccountNos.characters.map { String($0) }

答案 4 :(得分:0)

  1. 答案 var values = "2" let length = values.characters.count if length == 1 { values = "0" + values }
  2. 如果您希望将字符串转换为Int或double     let doubleVal = Double(values)

答案 5 :(得分:0)

第一种方法

for myInt in 1...100 {
    print(String(format: "%02d", myInt))
}

第二种方法使用 参数

let string0 = String(format: "%02d", arguments: [0]) // returns "00"
let string1 = String(format: "%02d", arguments: [1]) // returns "01"
let string2 = String(format: "%02d", arguments: [10]) // returns "10"
let string3 = String(format: "%02d", arguments: [100]) // returns "100"
使用 NumberFormatter

第三种方法

let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 2

let optionalString0 = formatter.string(from: 0) // returns Optional("00")
let optionalString1 = formatter.string(from: 1) // returns Optional("01")
let optionalString2 = formatter.string(from: 10) // returns Optional("10")
let optionalString3 = formatter.string(from: 100) // returns Optional("100")

参考链接 Leading zeros for Int in Swift