티스토리 뷰

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아닌가?

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
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
글 보관함