私はString
Array
を持っています。各文字列のスペースをトリムする必要があります。 forループでループすることなく簡単な方法で教えてください。Swift - 配列内の文字列をトリミングする
例:["Apple ", "Bike ", " Cat", " Dog "]
私はこのようにArray
を持っています。私はこれらのスペースをすべて切り取って欲しいです。
私はString
Array
を持っています。各文字列のスペースをトリムする必要があります。 forループでループすることなく簡単な方法で教えてください。Swift - 配列内の文字列をトリミングする
例:["Apple ", "Bike ", " Cat", " Dog "]
私はこのようにArray
を持っています。私はこれらのスペースをすべて切り取って欲しいです。
これはmap
の良いアプリケーションです。配列内の各項目を取得し、trimmingCharacters(in:)
を適用して、文字列の末尾から空白を削除します。
import Foundation // or UIKit or Cocoa
let array = ["Apple ", "Bike ", " Cat", " Dog "]
let trimmed = array.map { $0.trimmingCharacters(in: .whitespaces) }
print(trimmed) // ["Apple", "Bike", "Cat", "Dog"]
DuncanCさんのコメント@私はここでそれを強調しています重要なポイントです:マップ文のvacawamaの使用@
は を使用するよりも確かに多くの「スウィフト様」でありますforループですが、パフォーマンスはすべて同じだと思います。ここに の魔法はありません。配列内のすべての文字列をチェックし、先行/後続スペースを にする必要がある場合は、 のすべての文字列を反復処理する必要があります。それはmapステートメントが内部的に行うものです。それは命令的な構文ではなく機能 を使用するだけです。
私たちは文字列として配列を結合することができ、スペースを置き換えることができます。
と同様に、
let array = ["Apple ", "Bike ", " Cat", " Dog "]
var jointString = array.joinWithSeparator(",")
jointString = jointString.stringByReplacingOccurrencesOfString(" ", withString: "")
let newArray = jointString.componentsSeparatedByString(",")
print(newArray)
スウィフト3-4互換性
(@のvacawamaの回答に基づいて)
let items = ["Apple ", "Bike ", " Cat", " Dog "]
let trimmed = items.map({
return $0.trimmingCharacters(in: .whitespaces)
})
print(trimmed) // ["Apple", "Bike", "Cat", "Dog"]
は、どのようなオプションあなたは検討していますか?それがあなたが知っているアプローチなら、なぜ単純なループではないのですか? – Wain
パフォーマンスに影響を与えるためにループしたくありません。私たちはSwiftの多くのオプションを持っているので、フィルタのようなSet Propertiesとオプションの種類を列挙して、私はこの種類のフィーチャを探しています( – Bharathi
)?あなたの配列にいくつのアイテムがありますか?あなたが明示的にそれを書いていなくても、あなたがすることはループを伴います... – Wain