Swiftで、 カンマ区切りなどの最後の余計な “,”など 文字列 の末尾を消したい場合 の コード例
var s = "あ,い,う," s = String(s.dropLast()) //末尾を削除 print(s)
dropLast()で 末尾を 削除できます。
Stringの dropLast() の 戻り値は Substring でデフォルトのシーケンスタイプ Slice<String>です。
SwiftUIにはForEachという構造体(struct)があります。このForEachはIdentifiedデータを用いてオンデマンドでViewを再構築してくれます。ForEachイニシャライザにidパラメータを提供する必要があります。
var body: some View { VStack{ ForEach(0..<10){_i in Text("\(_i)") } } }
var body: some View { VStack{ ForEach(["不思議の国のトムキンス","すばらしい新世界"], id: \.self){ Text($0) } } }
struct Hoge: Identifiable{ var id = UUID() var value : String }
上記のようなIdentifiable継承したstructを使った配列はForEachで利用可能です
struct ContentView: View { @State var hogeList:[Hoge] = [Hoge(value: "Aldous Leonard Huxley"),Hoge(value: "James Patrick Hogan")] var body: some View { VStack{ ForEach(hogeList){_i in let hoge: String = _i.value Text("\(hoge)") } } } }
Swiftの文字列(String)には、addingPercentEncoding()という関数が用意されています。これを使えばを文字列から㌫エンコードすることができます。エンコードされた文字列は、“%E3%81%82“のようなURLのQueryでよく見かけるフォーマットです。
let s = "不思議の国のトムキンス".addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)! print(s)
上記コードは、addingPercentEncoding()のコード例です「%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AE%E5%9B%BD%E3%81%AE%E3%83%88%E3%83%A0%E3%82%AD%E3%83%B3%E3%82%B9」と出力されます
このパーセントエンコードされた文字列をもとに戻すにはremovingPercentEncodingを使います。removingPercentEncodingは、String内にある関数です
let s = "%E6%80%AA%E7%8D%A3%E2%AD%90".removingPercentEncoding print(s as Any)