2014-07-13 18 views
49

Trong Mục tiêu-C, chúng ta có thể gọi componentsJoinedByString để tạo ra một chuỗi với mỗi phần tử của mảng được phân tách bằng chuỗi được cung cấp. Trong khi Swift có một phương pháp componentsSeparatedByString trên String, có vẻ không phải là nghịch đảo của này trên mảng:Tương đương Swift của Array.componentsJoinedByString?

'Array<String>' does not have a member named 'componentsJoinedByString' 

nghịch đảo của componentsSeparatedByString trong Swift là gì?

Trả lời

113

Swift 3.0:

Tương tự như Swift 2.0, nhưng đổi tên API đã đổi tên joinWithSeparator-joined(separator:).

let joinedString = ["1", "2", "3", "4", "5"].joined(separator: ", ") 

// joinedString: String = "1, 2, 3, 4, 5" 

Xem Sequence.join(separator:) để biết thêm thông tin.

Swift 2.0:

Bạn có thể sử dụng phương pháp joinWithSeparator trên SequenceType để tham gia vào một mảng các chuỗi với một tách chuỗi.

let joinedString = ["1", "2", "3", "4", "5"].joinWithSeparator(", ") 

// joinedString: String = "1, 2, 3, 4, 5" 

Xem SequenceType.joinWithSeparator(_:) để biết thêm thông tin.

Swift 1.0:

Bạn có thể sử dụng chức năng join thư viện tiêu chuẩn trên String để tham gia vào một mảng các chuỗi với một chuỗi.

let joinedString = ", ".join(["1", "2", "3", "4", "5"]) 

// joinedString: String = "1, 2, 3, 4, 5" 

Hoặc nếu bạn muốn thay, bạn có thể sử dụng chức năng thư viện tiêu chuẩn toàn cầu:

let joinedString = join(", ", ["1", "2", "3", "4", "5"]) 

// joinedString: String = "1, 2, 3, 4, 5" 
+0

Đối xứng, tôi cũng nhận thấy có một hàm 'split' toàn cục, mặc dù có vẻ hơi cồng kềnh để sử dụng. Cũng không có phương pháp 'tách' nào trên 'Mảng' ở tất cả những gì tôi có thể thấy, thật không may. – devios1

7

Các thành phầnJoinedByString vẫn có sẵn trên NSArray, nhưng không có trên các mảng nhanh. Bạn có thể cầu qua lại.

var nsarr = ["a", "b", "c"] as NSArray 
var str = nsarr.componentsJoinedByString(",") 
+0

Swift mảng componentsSeparatedByString làm việc cho tôi ở sân chơi với XCode Beta 3 mà không cần bắc cầu. Bạn có thể thử cái này không? var commaSeperatedStr = "1, 2, 3, 4, 5" var arrayFromCommaSeperatedStr: Array = commaSeperatedStr.componentsSeparatedByString (","). Tại sao không đối diện là không thể hiểu được. – mohacs

+0

yeah đó là hợp lệ. câu hỏi là về phía đối diện mặc dù – connor

+0

Tôi nhấn enter sớm tôi đã viết lý do tại sao không đối diện là không. – mohacs

Các vấn đề liên quan