2016-12-20 6 views
8

これは簡単かもしれませんが、私はSwiftに非常に新しいので、私が得ることができるすべての助けが必要です。名前のないタプルの文字列表現をタプルに変換する

私は変数にそれを割り当てた場合、それははっきりtupleないように印刷を示し、"("Example 1", "Example 2")"
は今、私は、tuple内の個々の要素を呼び出すことはできませんという文字列を持っています。

tuple(おそらくJSONSerialization)に変換する方法があるかどうかをご確認しますか?私はタプル、 let array = try! JSONSerialization.jsonObject(with: data, options: []) as! Array<Any>を試し
、それは"["Example 1", "Example 2"]"の文字列で動作しますが、ない

、私は()options:[]を変更しようとしたが、それは動作しませんでした。

+0

のようにそれを使用することができますか?シンプルなソリューションですか – Tj3n

+0

私は最初の '' 'と最後の' ''がなければタプルになる文字列を持っていますが、単純な文字列のものを取り除くことはできません。 「例1」、「例2」) "' - > '("例1 "、"例2 ")' – Will

+0

基本的に文字列からタプルを作成しようとしていますか? ''例1 '''例2' '' '' '例1 'と' '例2''を持つタプルに変換しますか? – Tj3n

答えて

4

私はあなたがタプルのように見える文字列からタプルを作成したいと思っているものをベースにしています。ですから、この文字列内の値を抽出してタプルを作成するだけです。ここ

あなたは常にフォーマットは同じ

func extractTuple(_ string: String) -> (String,String) { 
    //removes " and (and) from the string to create "Example 1, Example 2" 
    let pureValue = string.replacingOccurrences(of: "\"", with: "", options: .caseInsensitive, range: nil).replacingOccurrences(of: "(", with: "", options: .caseInsensitive, range: nil).replacingOccurrences(of: ")", with: "", options: .caseInsensitive, range: nil) 

    let array = pureValue.components(separatedBy: ", ") 
    return (array[0], array[1]) 
} 

であることを確認しているならば、あなたはあなたが配列からタプルを作成しようとしている。この

let string = "(\"Example 1\", \"Example 2\")" 
let result = extractTuple(string) 
print(result) 
+1

文字列自体にカッコまたはコンマが含まれているとどうなりますか? 'let string ="(\ "A(B)C \"、\ "D、E \") " –

+0

で試してください。はい、この文字列にコンマが含まれていればどうなりますか? – Will

関連する問題