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> { |
||
val street: 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)"}") |
||
} |
} |