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 Foundationque técnicamente no sea parte del lenguaje Swift sino una capacidad proporcionada por el Foundationmarco. Tenga en cuenta que ambos import UIKite import Cocoaincluir, Foundationpor lo que no es necesario volver a importarlo si ya ha importado Cocoao UIKit.
La cadena de formato puede especificar el formato de varios elementos. Por ejemplo, si está intentando formatear 3horas, 15minutos y 7segundos 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, -9produce 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
Stringelinit(format:_:)inicializadorFoundationproporciona a SwiftStringuninit(format:_:)inicializador.init(format:_:)tiene la siguiente declaración:El siguiente código de Playground muestra cómo crear un
StringformatoIntcon al menos dos dígitos enteros utilizandoinit(format:_:):# 2 Usando
Stringelinit(format:arguments:)inicializadorFoundationproporciona a SwiftStringuninit(format:arguments:)inicializador.init(format:arguments:)tiene la siguiente declaración:El siguiente código de Playground muestra cómo crear un
StringformatoIntcon al menos dos dígitos enteros utilizandoinit(format:arguments:):# 3 Utilizando
NumberFormatterFundación proporciona
NumberFormatter. Apple dice al respecto:El siguiente código de Playground muestra cómo crear un
NumberFormatterque regreseString?de unIntcon 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+
StringExtensión de relleno izquierdo similar apadding(toLength:withPad:startingAt:)enFoundationUso:
fuente
withPadargumento 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