Suponiendo que desea una longitud de campo de 2 con ceros a la izquierda, haría esto:
import Foundation
for myInt in 1 ... 3 {
print(String(format: "%02d", myInt))
}
salida:
01
02
03
Esto requiere import Foundation
que técnicamente no sea parte del lenguaje Swift sino una capacidad proporcionada por el Foundation
marco. Tenga en cuenta que ambos import UIKit
e import Cocoa
incluir, Foundation
por lo que no es necesario volver a importarlo si ya ha importado Cocoa
o UIKit
.
La cadena de formato puede especificar el formato de varios elementos. Por ejemplo, si está intentando formatear 3
horas, 15
minutos y 7
segundos 03:15:07
, puede hacerlo así:
let hours = 3
let minutes = 15
let seconds = 7
print(String(format: "%02d:%02d:%02d", hours, minutes, seconds))
salida:
03:15:07
println("0\(myInt)")
su sugerencia. Eso usaría la clase Swift native String en lugar de pasar por el formato NSString.String(format: "%03d", myInt)
le dará"000", "001", ... , "099", "100"
.-3, -9
produce un valor similar , aún devuelve el mismo sin un cero a la izquierda.Con Swift 5, puede elegir uno de los tres ejemplos que se muestran a continuación para resolver su problema.
# 1 Usando
String
elinit(format:_:)
inicializadorFoundation
proporciona a SwiftString
uninit(format:_:)
inicializador.init(format:_:)
tiene la siguiente declaración:El siguiente código de Playground muestra cómo crear un
String
formatoInt
con al menos dos dígitos enteros utilizandoinit(format:_:)
:# 2 Usando
String
elinit(format:arguments:)
inicializadorFoundation
proporciona a SwiftString
uninit(format:arguments:)
inicializador.init(format:arguments:)
tiene la siguiente declaración:El siguiente código de Playground muestra cómo crear un
String
formatoInt
con al menos dos dígitos enteros utilizandoinit(format:arguments:)
:# 3 Utilizando
NumberFormatter
Fundación proporciona
NumberFormatter
. Apple dice al respecto:El siguiente código de Playground muestra cómo crear un
NumberFormatter
que regreseString?
de unInt
con al menos dos dígitos enteros:fuente
Para el relleno izquierdo, agregue una extensión de cadena como esta:
Swift 2.0 +
Swift 3.0 +
Usando este método:
fuente
Swift 3.0+
String
Extensión de relleno izquierdo similar apadding(toLength:withPad:startingAt:)
enFoundation
Uso:
fuente
withPad
argumento pasado es más de un solo carácter.Swift 5
Las respuestas de @imanuo ya son geniales, pero si está trabajando con una aplicación llena de números, puede considerar una extensión como esta:
De esta manera puedes llamar a donde sea:
fuente
en Xcode 8.3.2, iOS 10.3 Eso es bueno ahora
Muestra1:
Muestra2:
fuente
Las otras respuestas son buenas si solo se trata de números que usan la cadena de formato, pero esto es bueno cuando puede tener cadenas que necesitan ser rellenadas (aunque es cierto que es un poco diferente a la pregunta que se hace, parece similar en espíritu). Además, tenga cuidado si la cuerda es más larga que la almohadilla.
Salida
"-----a str"
fuente
Detalles
Xcode 9.0.1, swift 4.0
Soluciones
Datos
Solución 1
Solución 2
Solución 3
fuente
A diferencia de las otras respuestas que usan un formateador, también puede agregar un texto "0" delante de cada número dentro del bucle, así:
Pero el formateador a menudo es mejor cuando tiene que sumar, suponga una cantidad designada de 0 para cada número separado. Sin embargo, si solo necesita agregar un 0, entonces es realmente solo su elección.
fuente