[解決済み】文字列から最後の文字を削除する。Swift言語
2022-04-03 11:19:25
質問
Swiftを使用してString変数から最後の文字を削除するにはどうすればよいですか?ドキュメントでそれを見つけることができません。
以下はその例です。
var expression = "45+22"
expression = expression.substringToIndex(countElements(expression) - 1)
解決方法は?
Swift 4.0 (Swift 5.0 も)
var str = "Hello, World" // "Hello, World"
str.dropLast() // "Hello, Worl" (non-modifying)
str // "Hello, World"
String(str.dropLast()) // "Hello, Worl"
str.remove(at: str.index(before: str.endIndex)) // "d"
str // "Hello, Worl" (modifying)
Swift 3.0
APIが少し増えました ふわふわ その結果、Foundation 拡張機能が少し変わりました。
var name: String = "Dolphin"
var truncated = name.substring(to: name.index(before: name.endIndex))
print(name) // "Dolphin"
print(truncated) // "Dolphi"
またはインプレース版。
var name: String = "Dolphin"
name.remove(at: name.index(before: name.endIndex))
print(name) // "Dolphi"
Zmeyさん、Rob Allenさん、ありがとうございます
Swift 2.0+ Way
これを実現するには、いくつかの方法があります。
Swift ライブラリの一部ではないにもかかわらず、Foundation 拡張を経由して。
var name: String = "Dolphin"
var truncated = name.substringToIndex(name.endIndex.predecessor())
print(name) // "Dolphin"
print(truncated) // "Dolphi"
を使用することで
removeRange()
メソッド(これは
を変更します。
その
name
):
var name: String = "Dolphin"
name.removeAtIndex(name.endIndex.predecessor())
print(name) // "Dolphi"
を使用することで
dropLast()
関数を使用します。
var name: String = "Dolphin"
var truncated = String(name.characters.dropLast())
print(name) // "Dolphin"
print(truncated) // "Dolphi"
旧String.Index(Xcode 6 Beta 4 +)の方法
以来
String
の型は優れたUTF-8サポートを提供することを目的としているので、文字インデックス/範囲/部分文字列に
Int
型を使用します。代わりに
String.Index
:
let name: String = "Dolphin"
let stringLength = count(name) // Since swift1.2 `countElements` became `count`
let substringIndex = stringLength - 1
name.substringToIndex(advance(name.startIndex, substringIndex)) // "Dolphi"
あるいは、(より実用的な例ですが、教育的な例ではありません。
endIndex
:
let name: String = "Dolphin"
name.substringToIndex(name.endIndex.predecessor()) // "Dolphi"
注
見つけた
これ
を理解するための素晴らしい出発点です。
String.Index
旧来の(ベータ4以前の)方法
単純に
substringToIndex()
の長さより1つ短くしてください。
String
:
let name: String = "Dolphin"
name.substringToIndex(countElements(name) - 1) // "Dolphi"
関連
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み] 文字列から空白を取り除くには?
-
[解決済み] JavaScriptにおけるendsWith
-
[解決済み] 文字列からテキストを削除するには?
-
[解決済み] 文字列の長さを取得する
-
[解決済み] 文字列から最後の文字を削除するには?
-
[解決済み] プログラミング言語Swiftで文字列のn文字目を取得する
-
[解決済み】Java7で文字列からパスを作成する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Mips ユーザー入力文字列の保存方法
-
[解決済み] OCaml - intをstringに変換する方法は?
-
[解決済み] 動的構造体参照の引数は、有効なフィールド名として評価する必要があります。
-
[解決済み] プログラミング言語Swiftで文字列のn文字目を取得する
-
[解決済み】文字列から最後の文字を削除する。Swift言語
-
[解決済み] sqliteでパディングを含む文字列を連結する方法
-
[解決済み】ファイル全体を文字列変数に読み込むには?
-
[解決済み】Swift Stringで文字のインデックスを検索する
-
[解決済み】2つの部分文字列の間にある文字列を検索する【重複あり
-
[解決済み] 複数行の文字列をカンマで区切られた1つの文字列に変換する