문제설명
외로운 현우는 미소녀 연애 시뮬레이션 게임을 하려고 합니다. 다운로드를 끝내고 게임에 접속하니 아이디를 만들라는 창이 등장했습니다. 아이디는 영어로만 쓸 수 있고, 20글자를 넘어가면 안 됩니다. 현우가 정한 아이디의 생성 가능여부를 출력하세요.
입출력 예
입력 #1
abcdefghijklmnopqrstuvwxyz
입력 #2
ABC
입력값 설명
첫째 줄에 영어 소문자와 대문자로만 이루어진 아이디가 주어집니다. 입력되는 아이디의 길이는 100자를 넘어가지 않습니다.
출력 #1
I
출력 #2
P
출력값 설명
첫째 줄에 아이디의 생성여부를 출력합니다. 사용할 수 있는 아이디라면 P라고 출력하고, 사용할 수 없다면 I라고 출력합니다.
🥠 이 문제에서는 Pattern.matches() 메서드를 사용해줬다.
✔️ Pattern.matches()설명
- Pattern.matches()는 Java에서 정규 표현식을 사용하여 문자열이 특정 패턴과 일치하는지 확인하는 정적 메서드입니다.
- java.util.regex.Pattern 클래스에 속해 있습니다.
- 전체 문자열이 주어진 정규 표현식과 일치해야 true를 반환합니다.
✔️ 기본 요소ㅡ문자 클래스
- [abc]: a, b, c 중 하나
- [^abc]: a, b, c를 제외한 문자
- [a-zA-Z]: 모든 알파벳 (소문자 a-z, 대문자 A-Z)
- [0-9]: 모든 숫자
✔️ 예를들어 간단하게 설명하자면
Pattern.matches("^[a-zA-Z]*$", name)
- ^: 문자열의 시작
- [a-zA-Z]: 모든 알파벳 문자 (대소문자 포함)
- *: 0회 이상 반복
- $: 문자열의 끝
- 즉, "알파벳만으로 구성된 문자열(빈 문자열 포함)"을 검사합니다.
✔️ 문자열에 대한 상세 정규식
정규식 패턴 | 설명 |
"^[a-z|A-Z]*$" | 대소구분 없는 영문만 허용하는 정규식 |
"^[a-z]*$" | 소문자만 허용하는 정규식 |
"^[A-Z]*$" | 대문자만 허용하는 정규식 |
"^[ㄱ-ㅎ|가-힣]*$" | 한글만 허용하는 정규식 |
"^[a-z|A-Z|ㄱ-ㅎ|가-힣]*$" | 대소구분 없는 영문과 한글만 허용하는 정규식 |
"^[a-z|A-Z|ㄱ-ㅎ|가-힣| ]*$" | 대소구분 없는 영문과 한글만 허용하는 정규식 (스페이스바 포함) |
"^[0-9a-zA-Zㄱ-ㅎ가-힣]*$"; | 대소구분 없는 영문과 한글만 허용하는 정규식 |
"^[0-9a-zA-Zㄱ-ㅎ가-힣 ]*$"; | 대소구분 없는 영문과 한글, 숫자를 허용하는 정규식(스페이스바 포함) |
🥠문제풀이
import문을 불러와 주고
import java.util.regex.Pattern;
문자열에 숫자,특수문구 등 다른 언어가 포함되어 있으면 false를 반환한다
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String name="string"
System.out.println(Pattern.matches("^[a-zA-Z]*$", name));
String fail_name= "this_is;fail";
System.out.println(Pattern.matches("^[a-zA-Z]*$", fail_name));
}
*참고
if 조건문 안에는 boolean 값도 사용 가능하다
두 조건이 모두 true일 때만 전체 조건이 true이다
if 조건문 안에는 boolean 값도 사용 가능하다
두 조건이 모두 true일 때만 전체 조건이 true이다
참고
반응형
'JAVA' 카테고리의 다른 글
[프로그래머스] Lv0. 대소문자 바꿔서 출력하기 (0) | 2025.04.23 |
---|---|
[JAVA] String 에서 int로 , int에서 String으로 (0) | 2025.04.23 |
[JAVA] char, string , stringbuffer 설명 (1) | 2025.04.12 |
[JAVA] 전체 개념 한눈에 보기 (0) | 2025.04.09 |
[JAVA 기초] Collections (0) | 2023.03.13 |