Chcę dopasować pewne cyfry i liczby (które będą ciągi) poniżej:

1
2
3
4
5
6
7
8
9
10

Chcę każdej cyfry od 1-9, aby mieć przestrzeń z przodu, więc będzie wyglądać tak - (10 powinna mieć 0 cyfr poniżej 9, a nie 1 cyfry poniżej 9):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

W drugim przypadku wygląda bardziej jak dobrze wyrównane.
Czy w szybkim jest sposób, aby to zrobić?

0
Adrian 3 czerwiec 2018, 12:03

3 odpowiedzi

Najlepsza odpowiedź

Użyj String(format:) za pomocą szerokości pola 2:

for i in 1...10 {
    print(String(format: "%2d", i))
}

Możesz dowiedzieć się więcej o Specyfikatory formatu strunowego tutaj.

3
vacawama 3 czerwiec 2018, 09:32

1- Daj im wszystkie równe prowadzenie

2- Wykonaj ograniczenie o równej szerokości dla wszystkich

3- Prawy Wyrównaj etykiety z 1-9

0
Sh_Khan 3 czerwiec 2018, 09:14

Jabłka Numberformatter jest tym, czego chcesz użyć tutaj.

let numbers:[NSNumber] = [1,2,3,4,5,6,7,8,9,10,11,12,100,1000]

let formatter = NumberFormatter()
formatter.minimumIntegerDigits = 2

for n in numbers {
    print(formatter.string(from: n))
}

// prints 01, 02, 03 etc.

Edytuj: Ach, nie przeczytałem pytania prawidłowo, chcesz przestrzeń zamiast 0. Nevermid tej odpowiedzi :)

0
Gertjan Smits 3 czerwiec 2018, 09:30