각 문자열의 공백을 다듬을 필요가있는 String
Array
이 있습니다. for 루프에서 반복하지 않고 간단한 방법으로 알려 주시기 바랍니다.스위프트 - 배열의 문자열 다듬기
예 : ["Apple ", "Bike ", " Cat", " Dog "]
나는 이와 같이 Array
이 있습니다. 이 모든 공간을 손질하기 바란다.
각 문자열의 공백을 다듬을 필요가있는 String
Array
이 있습니다. for 루프에서 반복하지 않고 간단한 방법으로 알려 주시기 바랍니다.스위프트 - 배열의 문자열 다듬기
예 : ["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의 답변에 따라)
는 는
는 어떤 옵션을 당신은 생각했다
? 그게 당신이 알고있는 접근이라면 왜 단순한 루프가 아니겠습니까? – Wain성능에 영향을주기 때문에 루프를 수행하지 않습니다. 우리는 Swift에서 Filter와 같은 Set Properties와 많은 옵션을 가지고 있기 때문에, 옵션의 종류를 열거하고,이 특징 유형을 찾고 있습니다. – Bharathi
프로필을 만드셨습니까? 배열에 몇 개의 항목이 있습니까? 당신이 명시 적으로 그것을 쓰지 않더라도 당신이하는 일은 루프를 포함합니다 ... – Wain