検索と置換
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 49/63。
Regex.findAllは一致を順番に返します。各一致にはvalue文字列が含まれます。これらの一致を反復処理したり、mapで変換してtoListで収集したりできます。Regex.replaceは、指定された置換テキストですべての一致を置き換えます。
mainの中:
val digits = Regex("[0-9]+")
println(digits.replace("Box12Shelf7", "#"))連続する各数字グループが1つの一致となるため、置換は2回行われます。
findAll は一致箇所を順番に処理します。Regex の replace はデフォルトですべての一致箇所を置換します。
チャレンジ
中級パラメーター text: String を使用して extractNumbers を完成させてください。連続する ASCII 数字の各グループを、左から右の順に文字列としてすべて返してください。先頭のゼロは保持してください。数字がない場合は空のリストを返してください。
上記でより厳しい上限が指定されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。解析対象のテキストには、説明されているように無効な表現や範囲外の表現が含まれる場合があります。
型 List<String> の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つ読み取られます。リストは要素数に続いて各要素が始まり、マップはエントリ数に続いて各キーと値が始まります。ネストされたリストでは、各行について要素数と要素の形式を繰り返します。提供された main は、返り値に続けて改行を 1 つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun extractNumbers(text: String): List<String> {
// ここに解答を書いてください。
return emptyList()
}
fun main() {
val text = readLine().orEmpty()
println(extractNumbers(text))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド