on
[프로그래머스][JAVA] 신규 아이디 추천 (String)
[프로그래머스][JAVA] 신규 아이디 추천 (String)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
class Solution { public static String solution( String new_id) { String answer = new KAKAOID(new_id) .replaceToLowerCase() .filter() .toSingleDot() .deleteStartEndDot() .noBlank() .noGreaterThan16() .noLessThan2() .getResult(); return answer; } private static class KAKAOID{ private String s; public KAKAOID( String s) { this .s = s; } private KAKAOID replaceToLowerCase() { s = s.toLowerCase(); return this ; } private KAKAOID filter() { s = s.replaceAll( "[^a-z0-9_.-]" , "" ); return this ; } private KAKAOID toSingleDot() { s = s.replaceAll( "[.]{2,}" , "." ); return this ; } private KAKAOID deleteStartEndDot() { s = s.replaceAll( "^[.]|[.]$" , "" ); return this ; } private KAKAOID noBlank() { s = s.isEmpty()? "a" : s; return this ; } private KAKAOID noGreaterThan16() { s = (s. length () > 15 )? s. substring ( 0 , 15 ) : s; s = s.replaceAll( "[.]$" , "" ); return this ; } private KAKAOID noLessThan2() { StringBuilder sBuilder = new StringBuilder(s); while (sBuilder. length () < = 2 ) { sBuilder = sBuilder.append(sBuilder. charAt (sBuilder. length () - 1 )); } s = sBuilder. toString (); return this ; } public String getResult() { return s; } } } Colored by Color Scripter
from http://aig2029.tistory.com/256 by ccl(A) rewrite - 2021-09-06 03:00:55