Предполагая, что вам нужно поле длиной 2 с ведущими нулями, вы должны сделать это:
import Foundation
for myInt in 1 ... 3 {
print(String(format: "%02d", myInt))
}
вывод:
01
02
03
Это требует import Foundation
технически, что это не часть языка Swift, а возможность, предоставляемая Foundation
фреймворком. Обратите внимание, что оба import UIKit
и import Cocoa
включают, Foundation
поэтому нет необходимости импортировать его снова, если вы уже импортировали Cocoa
или UIKit
.
Строка формата может указывать формат нескольких элементов. Например, если вы пытаетесь отформатировать 3
часы, 15
минуты и 7
секунды, 03:15:07
вы можете сделать это следующим образом:
let hours = 3
let minutes = 15
let seconds = 7
print(String(format: "%02d:%02d:%02d", hours, minutes, seconds))
вывод:
03:15:07
println("0\(myInt)")
ваше предложение. Это будет использовать Swift нативный класс String вместо того, чтобы проходить форматирование NSString.String(format: "%03d", myInt)
даст тебе"000", "001", ... , "099", "100"
.-3, -9
происходит, все равно возвращает то же самое без начального нуля.С Swift 5 вы можете выбрать один из трех примеров, показанных ниже, чтобы решить вашу проблему.
# 1. Использование
String
«sinit(format:_:)
инициализаторуFoundation
обеспечивает SwiftString
вinit(format:_:)
инициализатор.init(format:_:)
имеет следующую декларацию:В следующем коде Playground показано, как создать
String
формат,Int
содержащий как минимум две целые цифры, используяinit(format:_:)
:# 2. Использование
String
«sinit(format:arguments:)
инициализаторуFoundation
обеспечивает SwiftString
вinit(format:arguments:)
инициализатор.init(format:arguments:)
имеет следующую декларацию:В следующем коде Playground показано, как создать
String
формат,Int
содержащий как минимум две целые цифры, используяinit(format:arguments:)
:# 3. С помощью
NumberFormatter
Фонд обеспечивает
NumberFormatter
. Apple заявляет об этом:Следующий код Playground показывает, как создать объект,
NumberFormatter
который возвращаетсяString?
из объекта,Int
содержащего как минимум две целые цифры:источник
Для заполнения слева добавьте расширение строки, например:
Swift 2.0 +
Swift 3.0 +
Используя этот метод:
источник
Swift 3.0+
Левая набивка
String
расширение похожи наpadding(toLength:withPad:startingAt:)
инFoundation
Использование:
источник
withPad
переданный аргумент больше чем один символ.Swift 5
Ответы @imanuo уже хороши, но если вы работаете с приложением, полным чисел, вы можете рассмотреть расширение следующим образом:
Таким образом, вы можете позвонить куда угодно:
источник
в Xcode 8.3.2, iOS 10.3 это хорошо сейчас
Sample1:
Sample2:
источник
Другие ответы хороши, если вы имеете дело только с числами, использующими строку формата, но это хорошо, когда у вас могут быть строки, которые необходимо дополнить (хотя, по общему признанию, они немного отличаются от заданного вопроса, по духу похожи). Также будьте осторожны, если строка длиннее пэда.
Вывод
"-----a str"
источник
подробности
Xcode 9.0.1, swift 4.0
Решения
Данные
Решение 1
Решение 2
Решение 3
источник
В отличие от других ответов, использующих средство форматирования, вы также можете просто добавить текст «0» перед каждым числом внутри цикла, например:
Но форматирование часто лучше, когда вы должны добавить предполагаемое количество 0 для каждого отдельного числа. Если вам нужно только добавить один 0, тогда это действительно ваш выбор.
источник