2016-06-30 2 views
0

SwiftのString(format: format, args)メソッドを使用しようとしていましたが、改行なしで直接書式設定された文字列を印刷できないことがわかりました。Swiftのコンマ、改行、および括弧のない可変長パラメータを使用する文字列

"test string1 string2":私はこのような結果をお届けしていき、しかし

"test (\n string1,\n string2\n)\n" 

func someFunc(string: String...) { 
    print(String(format: "test %@", string)) 
} 

let string = "string1" 
someFunc(string, "string2") 

は、結果は次のようになります。

だから例えば、私はこのようなコードを持っています

どのようにして角括弧をつけることができますか?\n印刷されていますか?

+1

[このQ&A](http://stackoverflow.com/questions/28957940/remove-all-line-breaks-at-the-beginning-of-a-string-in-swift)があなたを助けることができるかどうかを確認してください。 – dfri

+1

文字列ではなく配列であることを明確にするために、 'string'を' string'に名前を変更する必要があります。 – Alexander

+0

あなたは正確に何を達成しようとしていますか? '' test%@ "'は* 1つの書式指定子しか持っていませんが、その書式を使って2つの文字列をどのように出力しますか? –

答えて

2

stringパラメータが順序であるので、あなたはこのように、それにjoinWithSeparatorを使用することができます。

func someFunc(string: String...) { 
    print(string.joinWithSeparator(" ")) 
} 

someFunc("quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog") 
+0

これは、暗黙的に新しい行文字を削除しますか? – SArnab

+0

@SArnab OPの例から判断すると、\ n "'は文字列の一部ではないので、削除する必要はありません。 – dasblinkenlight

+0

ああ、印刷中に追加されています。ありがとう! – SArnab

0

あなたはまず、したがって、それ以外の場合は、リストとして出力します、入力文字列のリストを連結する必要があります。カンマとカッコ文字セットを使用して、改行文字と空白文字を文字列の最後から削除することもできます。

var stringConcat : String = '' 
for stringEntry in string { 
    stringConcat += stringEntry.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) 
} 

次に、stringConcatを印刷してください。

関連する問題