447 Stimmen

Wie konvertiere ich ein Swift-Array in einen String?

Ich weiß, wie man es programmatisch macht, aber ich bin mir sicher, dass es einen eingebauten Weg gibt...

Jede Sprache, die ich benutzt habe, hat irgendeine Art von Standard-Textdarstellung für eine Sammlung von Objekten, die sie ausspuckt, wenn man versucht, das Array mit einem String zu verketten oder es an eine print() Funktion zu übergeben, usw. Hat die Swift-Sprache von Apple einen eingebauten Weg, ein Array leicht in einen String umzuwandeln, oder müssen wir immer explizit sein, wenn wir ein Array in einen String umwandeln?

0voto

john07 Punkte 484

Für jeden Elementtyp

extension Array {

    func joined(glue:()->Element)->[Element]{
        var result:[Element] = [];
        result.reserveCapacity(count * 2);
        let last = count - 1;
        for (ix,item) in enumerated() {
            result.append(item);
            guard ix < last else{ continue }
            result.append(glue());
        }
        return result;
    }
}

0voto

Tej Patel Punkte 119

Versuchen Sie das:

let Kategorien = dictData?.value(forKeyPath: "listing_subcategories_id") as! NSMutableArray
                        let tempArray = NSMutableArray()
                        for dc in Kategorien
                        {
                            let dictD = dc as? NSMutableDictionary
                            tempArray.add(dictD?.object(forKey: "subcategories_name") as! String)
                        }
                        let joinedString = tempArray.componentsJoined(by: ",")

0voto

elhoucine ayoub Punkte 979

Verwenden Sie dies, wenn Sie eine Liste des Strukturtyps in einen String konvertieren möchten

struct MyStruct {
  var name : String
  var content : String
}

let myStructList = [MyStruct(name: "name1" , content: "content1") , MyStruct(name: "name2" , content: "content2")]

und wandeln Sie Ihr Array auf diese Weise um

let myString = myStructList.map({$0.name}).joined(separator: ",")

ergibt ===> "name1, name2"

-1voto

dheeru Punkte 259

Wenn deine Frage so aussieht: tobeFormattedString = ["a", "b", "c"] Output = "abc"

String(tobeFormattedString)

-1voto

Ty Daniels Punkte 99

FÜR SWIFT 3:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    if textField == phoneField
    {
        let newString = NSString(string: textField.text!).replacingCharacters(in: range, with: string)
        let components = newString.components(separatedBy: NSCharacterSet.decimalDigits.inverted)

        let decimalString = NSString(string: components.joined(separator: ""))
        let length = decimalString.length
        let hasLeadingOne = length > 0 && decimalString.character(at: 0) == (1 as unichar)

        if length == 0 || (length > 10 && !hasLeadingOne) || length > 11
        {
            let newLength = NSString(string: textField.text!).length + (string as NSString).length - range.length as Int

            return (newLength > 10) ? false : true
        }
        var index = 0 as Int
        let formattedString = NSMutableString()

        if hasLeadingOne
        {
            formattedString.append("1 ")
            index += 1
        }
        if (length - index) > 3
        {
            let areaCode = decimalString.substring(with: NSMakeRange(index, 3))
            formattedString.appendFormat("(%@)", areaCode)
            index += 3
        }
        if length - index > 3
        {
            let prefix = decimalString.substring(with: NSMakeRange(index, 3))
            formattedString.appendFormat("%@-", prefix)
            index += 3
        }

        let remainder = decimalString.substring(from: index)
        formattedString.append(remainder)
        textField.text = formattedString as String
        return false
    }
    else
    {
        return true
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X