let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let index = alphabet.characters.startIndex.advancedBy(14) // String.CharacterView.Index
let allChars = alphabet.characters.prefixThrough(index) // String.CharacterView
print(String(allChars)) // "ABCDEFGHIJKLMNO\n"
7条答案
按热度按时间vc6uscn91#
可以使用
withCString
将字符串快速转换为字节数组(技术上是UnsafePointer<Int8>
):piwo6bdm2#
你还是自己来吧
如果您需要“更一般”的内容
其印刷了
drnojrws3#
问题在于Swift字符串的元素大小是可变的,所以“15个字符”的定义是模糊的。这对于简单的字符串来说是一个令人沮丧的来源--但在处理表情符号、地区标识符、连字等时,这使得语言更加精确。
您可以将Swift字符串转换为C字符串,并使用普通的格式化程序(参见Santosh的答案)。处理字符串的“Swift”方式是从
Character
集合的起始索引开始,前进N次。例如:如果要强制填充,可以使用如下方法:
acruukt94#
你试过这个吗?
vhmi4jdf5#
我们现在有很多有趣的答案。谢谢大家。我写了以下内容:
s6fujrry6#
From one hand %@ is used to format String objects:
But it does not support the width modifier:
Will still print unpadded text:
However there is a modifier %s that seems to work with CStrings:
Output:
One nice thing is that you can use the same format specification with NSLog:
yhxst69z7#
在2016年6月29日,用“Code Different(代码不同)”(谢谢!)来补充上面的答案,并允许写类似于
"hello".center(42); "world".alignLeft(42)
的内容: