티스토리 뷰
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class main {
public static void main(String[] args) {
String new_id = "...!@BaT#*..y.abcdefghijklm";
System.out.println(new_id.substring(0,3));
//1
new_id = new_id.toLowerCase();
System.out.println("1 " + new_id);
//2
String [] chr = new_id.split("");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < chr.length ; i++){
if(chr[i].matches("[a-z]") || chr[i].equals(".") || chr[i].equals("_") || chr[i].equals("-") || chr[i].matches("[0-9]")){
sb.append(chr[i]);
}
}
new_id = sb.toString();
System.out.println("2 " + new_id);
//3
new_id = new_id.replaceAll("[.]{2,}", ".");
System.out.println("3 " + new_id);
//4
new_id = new_id.replaceAll("^[.]*", "");
new_id = new_id.replaceAll("[.]*$", "");
System.out.println("4 " + new_id);
//5
if(new_id.equals("")) new_id = "a";
System.out.println("5 " + new_id);
//6
if(new_id.length() >= 16){
new_id = new_id.substring(0,15);
if(new_id.substring(new_id.length()-1,new_id.length()).equals(".")){
new_id = new_id.substring(0,14);
}
}
System.out.println("6 " + new_id);
//7
if(new_id.length() <= 2){
String lastStr = new_id.substring(new_id.length()-1, new_id.length());
while (new_id.length() != 3){
new_id+=lastStr;
}
}
System.out.println("result " + new_id);
}
}
정규표현식을 안쓰고 풀기엔 좀 난감한 문제였다.
그렇다고 정규표현식을 전부 공부할 수도 없고. ".."을 제거하는 부분은 결국 찾아보니 있었다.
레벨1이라고 하는데 이거 정규식이 나올정도면 2-3아닌가?
'프로그래밍 > 알고리즘' 카테고리의 다른 글
연습문제 다음 큰 숫자 (0) | 2021.11.29 |
---|---|
연습문제 > 피보나치 수 (0) | 2021.11.29 |
[자바] 프로그래머스 - N개의 최소공배수 (0) | 2019.02.20 |
[자바] 프로그래머스 -최댓값과 최솟값 (0) | 2019.02.20 |
프로그래머스 - JadenCase 문자열 만들기 (0) | 2019.02.20 |