выровнять влево и вправо в одной строке быстро - PullRequest
2 голосов
/ 24 мая 2019

Я хочу выровнять тексты влево и вправо на одной строке в swift. Например, у меня есть строка с названиями продуктов слева и ценой справа. Оба на одной линии. Возможно ли это?

Мне это нужно для печати через Bluetooth, где каждая строка содержит ровно 32 символа.

1 Ответ

2 голосов
/ 24 мая 2019

Если я правильно понимаю, вы хотите что-то вроде этого:

func alignLeftAndRight(left: String, right: String, length: Int) -> String {
    // calculate how many spaces are needed
    let numberOfSpacesToAdd = length - left.count - right.count

    // create those spaces
    let spaces = Array(repeating: " ", count: numberOfSpacesToAdd < 0 ? 0 : numberOfSpacesToAdd).joined()

    // join these three things together
    return left + spaces + right
}

Использование:

print(alignLeftAndRight(left: "Product", right: "Price", length: 32))
print(alignLeftAndRight(left: "Foo", right: "1", length: 32))
print(alignLeftAndRight(left: "Product", right: "123", length: 32))
print(alignLeftAndRight(left: "Something", right: "44", length: 32))
print(alignLeftAndRight(left: "Hello", right: "7777", length: 32))

Вывод:

Product                    Price
Foo                            1
Product                      123
Something                     44
Hello                       7777
...