Tro*_*roy 333 arrays ios swift
我知道如何以编程方式执行此操作,但我确信有一种内置方式...
我使用的每种语言都有一些对象集合的默认文本表示,当你尝试将Array与字符串连接起来时,它会吐出来,或者将它传递给print()函数等等.Apple的Swift语言吗?有一种内置的方法可以轻松地将Array转换为String,或者在对数组进行字符串化时我们是否总是要显式?
Ant*_*nio 645
如果数组包含字符串,你可以使用String
的join
方法:
var array = ["1", "2", "3"]
let stringRepresentation = "-".join(array) // "1-2-3"
Run Code Online (Sandbox Code Playgroud)
在Swift 2中:
var array = ["1", "2", "3"]
let stringRepresentation = array.joinWithSeparator("-") // "1-2-3"
Run Code Online (Sandbox Code Playgroud)
如果要使用特定的分隔符(hypen,blank,逗号等),这可能很有用.
否则,您只需使用该description
属性,该属性返回数组的字符串表示形式:
let stringRepresentation = [1, 2, 3].description // "[1, 2, 3]"
Run Code Online (Sandbox Code Playgroud)
提示:任何实现Printable
协议的对象都有一个description
属性.如果您在自己的类/结构中采用该协议,那么您也可以使它们打印友好
在Swift 3中
join
成为joined
例子[nil, "1", "2"].flatMap({$0}).joined()
joinWithSeparator
变为joined(separator:)
(仅适用于字符串数组)在Swift 4中
var array = ["1", "2", "3"]
array.joined(separator:"-")
Run Code Online (Sandbox Code Playgroud)
Ima*_*tit 119
使用Swift 3,根据您的需要,您可以选择以下代码块之一.
Character
转换为String
没有分隔符的数组:let characterArray: [Character] = ["J", "o", "h", "n"]
let string = String(characterArray)
print(string)
// prints "John"
Run Code Online (Sandbox Code Playgroud)
String
转换为String
没有分隔符的数组:let stringArray = ["Bob", "Dan", "Bryan"]
let string = stringArray.joined(separator: "")
print(string) // prints: "BobDanBryan"
Run Code Online (Sandbox Code Playgroud)
String
转换为String
带有单词之间分隔符的数组:let stringArray = ["Bob", "Dan", "Bryan"]
let string = stringArray.joined(separator: " ")
print(string) // prints: "Bob Dan Bryan"
Run Code Online (Sandbox Code Playgroud)
String
转换为String
带有字符之间分隔符的数组:let stringArray = ["car", "bike", "boat"]
let characterArray = stringArray.flatMap { $0 }
let stringArray2 = characterArray.map { String($0) }
let string = stringArray2.joined(separator: ", ")
print(string) // prints: "c, a, r, b, i, k, e, b, o, a, t"
Run Code Online (Sandbox Code Playgroud)
Float
转换为String
数字之间的分隔符:let floatArray = [12, 14.6, 35]
let stringArray = floatArray.map { String($0) }
let string = stringArray.joined(separator: "-")
print(string)
// prints "12.0-14.6-35.0"
Run Code Online (Sandbox Code Playgroud)
小智 49
Swift 2.0 Xcode 7.0 beta 6以后使用joinWithSeparator()
而不是join()
:
var array = ["1", "2", "3"]
let stringRepresentation = array.joinWithSeparator("-") // "1-2-3"
Run Code Online (Sandbox Code Playgroud)
joinWithSeparator
被定义为扩展 SequenceType
extension SequenceType where Generator.Element == String {
/// Interpose the `separator` between elements of `self`, then concatenate
/// the result. For example:
///
/// ["foo", "bar", "baz"].joinWithSeparator("-|-") // "foo-|-bar-|-baz"
@warn_unused_result
public func joinWithSeparator(separator: String) -> String
}
Run Code Online (Sandbox Code Playgroud)
har*_*ios 23
斯威夫特3
["I Love","Swift"].joined(separator:" ") // previously joinWithSeparator(" ")
Run Code Online (Sandbox Code Playgroud)
Ank*_*arg 14
在Swift 4中
let array:[String] = ["Apple", "Pear ","Orange"]
array.joined(separator: " ")
Run Code Online (Sandbox Code Playgroud)
如今,在 iOS 13+ 和 macOS 10.15+ 中,我们可能会使用ListFormatter
:
let formatter = ListFormatter()\n\nlet names = ["Moe", "Larry", "Curly"]\nif let string = formatter.string(from: names) {\n print(string)\n}\n
Run Code Online (Sandbox Code Playgroud)\n这将产生一个很好的、自然语言的列表字符串表示形式。美国用户将看到:
\n\n\n莫伊、拉里和卷毛
\n
它将支持 (a) 您的应用程序已本地化的任何语言;(b) user\xe2\x80\x99s 设备已配置。例如,使用支持德语本地化的应用程序的德国用户将看到:
\n\n\n莫伊、拉里和科利
\n
[0,1,1,0].map{"\($0)"}.reduce(""){$0+$1}//"0110"
Run Code Online (Sandbox Code Playgroud)
本着功能编程的精神
更改可选/非可选字符串数组
//Array of optional Strings
let array : [String?] = ["1",nil,"2","3","4"]
//Separator String
let separator = ","
//flatMap skips the nil values and then joined combines the non nil elements with the separator
let joinedString = array.flatMap{ $0 }.joined(separator: separator)
//Use Compact map in case of **Swift 4**
let joinedString = array.compactMap{ $0 }.joined(separator: separator
print(joinedString)
Run Code Online (Sandbox Code Playgroud)
这里flatMap,compactMap跳过数组中的nil值,并附加其他值以给出连接的字符串.
您可以使用循环来完成此操作。或者使用地图。
通过映射:
let array = ["one" , "two" , "three"]
array.map({$0}).joined(seperator : ",")
Run Code Online (Sandbox Code Playgroud)
所以在分隔符中你可以修改字符串。
Output-> ("one,two,three")
Run Code Online (Sandbox Code Playgroud)
当您也有结构数组时,您可以用来joined()
获取单个字符串。
struct Person{
let name:String
let contact:String
}
Run Code Online (Sandbox Code Playgroud)
您可以使用map()
&轻松生成字符串joined()
PersonList.map({"\($0.name) - \($0.contact)"}).joined(separator: " | ")
Run Code Online (Sandbox Code Playgroud)
输出:
Jhon - 123 | Mark - 456 | Ben - 789
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想将自定义对象数组转换为字符串或逗号分隔的字符串(csv),您可以使用
var stringIds = (self.mylist.map{$0.id ?? 0}).map{String($0)}.joined(separator: ",")
Run Code Online (Sandbox Code Playgroud)
归功于:urvish modi post:将整数数组转换为逗号分隔的字符串
归档时间: |
|
查看次数: |
223185 次 |
最近记录: |