22.4.28 [HackerRank]Valid Username Regular Expression

서태욱·2022년 4월 28일
0

Algorithm

목록 보기
19/45
post-thumbnail

✅ 문제 분석

회사 내부 네트워킹 플랫폼 username 운영정책을 업데이트 한다고 가정하고 푸는 문제.

정책상 8자이상 30자미만, 알파벳, 숫자 그리고 _ 로만 이루어질 수 있음. 대,소문자는 가능
첫글자는 대문자든 소문자든 무조건 알파벳이어야 함.

🌱 배경지식

정규표현식


일단 링크 참고하면서 필요한거 뽑아서 천천히 익혀야 할듯.

^x
문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.
x$
문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다.
[x-z]
range를 표현하며 x ~ z 사이의 문자를 의미한다.
\w
word 를 표현하며 알파벳 + 숫자 + _ 중의 한 문자임을 의미한다.
x{n,m}
반복을 표현하며 x 문자가 최소 n번 이상 최대 m 번 이하로 반복됨을 의미한다.

✏️ 해설

import java.util.Scanner;
class UsernameValidator {
    public static final String regularExpression = "^[a-zA-Z]\\w{7,29}$";
    // ^는 string을 시작하는 문자
    //[a-zA-Z]는 알파벳 대,소문자
    //\\w{7,29}는 끝에 도달($)할 때 까지 나머지 항목이 단어인지 확인하는 검사.
    //문제에서 8이상 30미만이라고 했으므로 범위{7,29} 나타냄
}

public class Solution {
    private static final Scanner scan = new Scanner(System.in);
    
    public static void main(String[] args) {
        int n = Integer.parseInt(scan.nextLine());
        while (n-- != 0) {
            String userName = scan.nextLine();

            if (userName.matches(UsernameValidator.regularExpression)) {
                System.out.println("Valid");
            } else {
                System.out.println("Invalid");
            }           
        }
    }
}

👉 참고

profile
re:START

0개의 댓글