文字列を反復処理する P2
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 77/93。
基本的な反復処理に加えて、文字列には既存の文字列から新しい文字列を構築するための便利なメソッドがいくつか用意されています。よくある作業の一つは、反復処理を行いながら文字を変換し、その結果を収集することです。
StringBuilder に文字を追加するか、文字列変数に単純に連結することで、新しい文字列を作成できます。
val original = "hello"
var result = ""
for (char in original) {
result += char.uppercaseChar()
}
println(result) // HELLOuppercaseChar()メソッドは単一の文字を大文字に変換し、lowercaseChar()はその逆を行います。これらは個々のChar値に対して機能しますが、uppercase()は文字列全体に対して機能します。
もう一つの実用的なテクニックは、反復処理中に文字をフィルタリングすることです。たとえば、さまざまな文字が混在する文字列から数字だけを抽出します。
val mixed = "a1b2c3"
var digits = ""
for (char in mixed) {
if (char.isDigit()) {
digits += char
}
}
println(digits) // 123Kotlin には、文字の種類に基づいて true または false を返す isDigit()、isLetter()、isWhitespace() のような便利な文字チェックメソッドがあります。これらを使うと、反復処理中に文字を簡単にフィルタリングしたり分類したりできます。
チャレンジ
中級文字列 text を受け取り、文字のみを含む新しい文字列に変換して返す関数 extractLetters を作成してください。
各文字を順に調べ、文字以外を取り除き、残った文字を大文字に変換してください。
パラメータ:
text(String): 文字、数字、空白、特殊文字を含む可能性がある文字列
戻り値: 入力に含まれる文字のみを含み、すべて大文字に変換された文字列(String)
自分で試してみよう
fun extractLetters(text: String): String {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド