Separate the house number from the street name: Difference between revisions

Content added Content deleted
(→‎{{header|REXX}}: added the REXX language.)
(→‎{{header|Kotlin}}: Updated example see https://github.com/dkandalov/rosettacode-kotlin for details)
Line 269: Line 269:
val r = Regex("""\s+""")
val r = Regex("""\s+""")


fun separateHouseNumber(address: String): Pair<String, String> {
fun separateHouseNumber(address: String): Pair<String, String> {
var street: String
val street: String
var house: String
val house: String
val len = address.length
val len = address.length
val splits = address.split(r)
val splits = address.split(r)
val size = splits.size
val size = splits.size
val last = splits[size - 1]
val last = splits[size - 1]
val penult = splits[size - 2]
val penult = splits[size - 2]
if (last[0] in '0'..'9') {
if (last[0] in '0'..'9') {
if (size > 2 && penult[0] in '0'..'9' && !penult.startsWith("194")) house = penult + " " + last
if (size > 2 && penult[0] in '0'..'9' && !penult.startsWith("194")) house = penult + " " + last
else house = last
else house = last
}
}
else if (size > 2) house = penult + " " + last
else if (size > 2) house = penult + " " + last
else house = ""
else house = ""
Line 326: Line 326:
println("--------------------- ------------")
println("--------------------- ------------")
for (address in addresses) {
for (address in addresses) {
val (street, house) = separateHouseNumber(address)
val (street, house) = separateHouseNumber(address)
println("${street.padEnd(22)} ${if (house != "") house else "(none)"}")
println("${street.padEnd(22)} ${if (house != "") house else "(none)"}")
}
}