是否有一个内置的Swift函数可以在一开始就填充字符串?

时间:2017-02-12 19:38:09

标签: swift string

vimdiff函数String将通过在末尾添加填充字符来填充字符串"填写"字符串到所需的长度。

是否有一个等效函数可以通过在开头添加填充字符来填充字符串?

例如,如果要在等宽字体输出字符串中对子字符串进行右对齐,这将非常有用。

我当然可以写一个,但我希望有一个内置函数,看看最后是如何填充功能。

2 个答案:

答案 0 :(得分:2)

由于Swift字符串操作是对旧NSString类的重复,我认为Apple从不打扰完成功能集,只是给了我们免费的桥接作为神的法术力。

或者,由于Objective-C从不回避超级冗长但含糊不清的代码,他们希望我们两次使用原生函数:

props.data.*

[编辑] Objective-C除了咆哮之外,解决方案比这更精细,并且为String类型添加一些更有用的填充方法可能会使事情更容易使用和维护:

例如:

let a = "42"
"".padding(toLength:10, withPad:a.padding(toLength:10, withPad:"0", startingAt:0), startingAt:a.characters.count)

// 0000000042

答案 1 :(得分:0)

您可以通过反转字符串,在末尾填充,结束然后再次反转来实现此目的...

let string = "abc"

// Pad at end
string.padding(toLength: 7, withPad: "X", startingAt: 0)
// "abcXXXX"    

// Pad at start
String(String(string.reversed()).padding(toLength: 7, withPad: "X", startingAt: 0).reversed())
// "XXXXabc"