- 아직 사내 시험에 종속되어 있어 Regex를 떠올리지 못했다.
- Regex 이용을 배웠다.
- Kotlin에서는 범위를 .. 으로 처리하는 편리함.
class Solution {
fun solution(new_id: String): String {
var answer = new_id
val reg1 = Regex("[a-z0-9-_.]") //소문자 a-z, 0-9숫자, -_. 특수기호의 존재
val reg2 = Regex("[.]{2,}") // . 특수기호가 2회이상 연속적으로 나오는지 확인하는 정규식
answer = answer.toLowerCase()
var temp = StringBuilder()
for (i in answer.indices) {
if (reg1.containsMatchIn(answer[i].toString())) {
temp.append(answer[i])
}
}
answer = temp.toString()
answer = answer.replace(reg2, ".")
if (answer.isNotEmpty() && answer.first() == '.') answer = answer.removeRange(0, 1)
if (answer.isNotEmpty() && answer.last() == '.') answer = answer.removeRange(answer.length - 1, answer.length)
if (answer.isEmpty()) answer = "a"
if (answer.length >= 16) {
answer = answer.substring(0..14)
if (answer.last() == '.') {
answer = answer.removeRange(answer.length - 1, answer.length)
}
}
while (answer.length <= 2) {
answer = answer.plus(answer[answer.length - 1])
}
return answer
}
}