2017-07-29 12 views
0

\/が文字列値の一部であると思われる文字列があります。スウィフト文字列リテラルのエスケープバックスラッシュ

["medium-video\/mp4", 
"hd720-video\/mp4", 
"medium-video\/webm", 
"small-video\/3gpp"] 

スウィフトはバックスラッシュについて文句を言います。私は\\/を試しましたが、文字列は\/ではなく、\\/で、使用しようとしています。これを修正する方法がわかりません。

二重バックスラッシュを使用して配列を印刷すると、私は期待している\/ではなく文字列内に表示されます。

["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"] 

答えて

3

( "/" 私はを期待していを仮定。) 悪い仮定ようです。歴史としてここにとどめただけ...

\//に置き換えてください。

各言語で有効なエスケープシーケンスがSwift(またはstandard-C)に定義されています\/は有効なエスケープシーケンスではなく、スラッシュはエスケープできません。

(JSONでは、\/は有効ですが、スラッシュをエスケープする必要がありません。)

とにかく、スウィフトに:

["medium-video/mp4", 
"hd720-video/mp4", 
"medium-video/webm", 
"small-video/3gpp"] 

は私がを期待してい\/を想定すると、 。あなたはすでに正しい答えを持っています。

["medium-video\\/mp4", 
"hd720-video\\/mp4", 
"medium-video\\/webm", 
"small-video\\/3gpp"] 

誤っていることの1つは、文字列の配列の内容を確認する方法です。

let arr = ["medium-video\\/mp4", 
"hd720-video\\/mp4", 
"medium-video\\/webm", 
"small-video\\/3gpp"] 

print(arr) 
["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"] 

スウィフトは、アレイの内容を印刷するデバッグ表記を使用して上記のように、良い方法ではないかもしれません。ストリングの配列内の実際の内容をチェックするには、これを試してください。

arr.forEach {print($0)} 
medium-video\/mp4 
hd720-video\/mp4 
medium-video\/webm 
small-video\/3gpp 
+0

私は質問のテキストを更新する必要がありました。 SOが私の例文を逃していた。 =/ – Geuis

+0

@Geuis、たぶんあなたは文字列とその実際の内容のテキスト表現と混同されます。 Swiftに '' medium-video/mp4 ''を書き込むと、実際の内容は '' m''e''d'''''''''''''''''''''''となります。 e''o''/'' m''''''''を実行します。 '' medium-video \/mp4 ''として与えられたJSON文字列のテキスト表現は、その実際の内容が '' m'''''''''''''''''''''' 「d」「e」「o」/「m」「p」「4」のいずれかを選択します。実際の内容が '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' '' p'' 4''、編集した質問に解答があります。本当に欲しいものを説明してください。 – OOPer

+0

オリジナルの質問の誤った書式設定に基づいていくつかの混乱があったと思います。 [OK]を、私は文字通り '中間ビデオ\​​/mp4'、バックスラッシュ含まれているAPIからjsonの応答でデータを取得しています。Swiftでは、json文字列を正確に一致させる必要のある一致する文字列を作成しています。つまり、 '\ /'と一致させる必要があります。しかし、Swiftでこれらの変数を書き込もうとするとバックスラッシュをエスケープする必要がありますが、別の '' \\ "'が値の中に現れます。つまり、 'medium-video \\/mp4'の代わりに'medium-video \/mp4' – Geuis

関連する問題