Files and Text Streams
Path Strings
Join and inspect path-like text without touching the filesystem.
path-strings
Path work often starts by combining stable text segments.
Path Strings
PathStrings.kt
Replay: real traced execution (multi-file project)
fun main() {
val folder = "notes"
val file = "today.txt"
val path = "$folder/$file"
val parts = path.split("/")
val extension = file.substringAfter(".")
println("path=$path")
println("folder=${parts[0]}")
println("extension=$extension")
}
fun main() {
val folder = "logs"
val file = "today.txt"
val path = "$folder/$file"
val parts = path.split("/")
val extension = file.substringAfter(".")
println("path=$path")
println("folder=${parts[0]}")
println("extension=$extension")
}
fun main() {
val folder = "data"
val file = "today.txt"
val path = "$folder/$file"
val parts = path.split("/")
val extension = file.substringAfter(".")
println("path=$path")
println("folder=${parts[0]}")
println("extension=$extension")
}
folder ← notes, file ← today.txt, path ← notes/today.txt, parts ← [notes, today.txt]
1fun main() {2 val folder→ notes = "notes" //@folder="logs", "data"3 val file→ today.txt = "today.txt"4 val path→ notes/today.txt = "$foldernotes/$filetoday.txt"5 val parts→ [notes, today.txt] = pathnotes/today.txt.split("/")6 val extension→ txt = filetoday.txt.substringAfter(".")78 println("path=$pathnotes/today.txt")9 println("folder=${parts[0]notes}")10 println("extension=$extensiontxt")11}outputpath=notes/today.txt folder=notes extension=txt
folder ← logs, file ← today.txt, path ← logs/today.txt, parts ← [logs, today.txt]
1fun main() {2 val folder→ logs = "logs"3 val file→ today.txt = "today.txt"4 val path→ logs/today.txt = "$folderlogs/$filetoday.txt"5 val parts→ [logs, today.txt] = pathlogs/today.txt.split("/")6 val extension→ txt = filetoday.txt.substringAfter(".")78 println("path=$pathlogs/today.txt")9 println("folder=${parts[0]logs}")10 println("extension=$extensiontxt")11}outputpath=logs/today.txt folder=logs extension=txt
folder ← data, file ← today.txt, path ← data/today.txt, parts ← [data, today.txt]
1fun main() {2 val folder→ data = "data"3 val file→ today.txt = "today.txt"4 val path→ data/today.txt = "$folderdata/$filetoday.txt"5 val parts→ [data, today.txt] = pathdata/today.txt.split("/")6 val extension→ txt = filetoday.txt.substringAfter(".")78 println("path=$pathdata/today.txt")9 println("folder=${parts[0]data}")10 println("extension=$extensiontxt")11}outputpath=data/today.txt folder=data extension=txt