将字符串Swift格式化为特定长度

时间:2016-07-21 20:46:32

标签: swift

我需要在一行打印一系列字符串。

var qty: Int = 1
var name: "Book"
var price: 13.50

我需要每个都附加空格,以便它们具有一定的长度,或者如果它们太长则删除了字符。对于qty id,它的长度为3,名称为30,价格为8

格式应为

1   Book                             13.50

1 个答案:

答案 0 :(得分:3)

有一个更好的,类似Swift的解决方案:

String(qty).stringByPaddingToLength(3, withString: " ", startingAtIndex: 0)

name.stringByPaddingToLength(30, withString: " ", startingAtIndex: 0)

String(price).stringByPaddingToLength(8, withString: " ", startingAtIndex: 0)

根据Apple documentation

  

通过从结尾删除字符,或者根据给定填充字符串的必要附加次数,返回从接收者形成的新字符串。

这就是你需要的东西。

用法可以是这样的:

let output = String(qty).stringByPaddingToLength(3, withString: " ", startingAtIndex: 0) + name.stringByPaddingToLength(30, withString: " ", startingAtIndex: 0) + String(price).stringByPaddingToLength(8, withString: " ", startingAtIndex: 0)

<强>更新

为了向右填充:

let p = String(price)
"".stringByPaddingToLength(8 - p.characters.count, withString: " ", startingAtIndex: 0) + p
相关问题