문자열 s의 길이가 4 혹은 6이고,
숫자로만 구성돼있는지 확인해주는 함수를 작성해야한다.
public static boolean stringCheck(String s) {
boolean answer = true;
if(s.length()==4 || s.length()==6) //문자열의 길이를 먼저 체크하고
{
for(int i = 0; i <s.length(); i++) {
char check = s.charAt(i);
if(check < 48 || check > 58 || s.equals("")) //아스키 코드로 문자인지 확인
{
return false;
}
}
} else {
return false;
}
return answer;
}
🔍정규식
정규식이란?
텍스트를 기술하기 위한 표현 방식으로 특정한 문자열의 검색, 치환, 추출에 있어서 강력한 문법을 제공해줌
정규식 작성방법
기호 | 설명 |
---|---|
[] | 한개의 문자 [abc]- a,b,c 중 하나의 문자 / [^abc] - a,b,c 이외의 문자/ [a-za-z] - a~z, A~Z 중 하나의 문자 |
\d | 한개의 숫자, [0-9]와 동일 |
\D | 숫자를 제외한 모든 문자 |
\s | 공백 |
\S | 공백이 아닌 나머지 문자 |
\w | 한개의 알파벳 또는 한 개의 숫자 |
\W | 알파벳 또는 숫자를 제외한 문자 |
? | 없음 또는 한개 |
. | 임의의 한 문자 |
* | 없음 또는 한개이상 |
+ | 앞문자가 한개 이상 |
^ | 문자열의 시작 |
(?!) | 대소문자 구분하지 않음 |
{a} | 정확히 a개 |
{a,} | 최소한 a개 |
{a,b} | a~b개까지 |
( ) | 그룹핑 |
활용
회원가입시 올바른 이메일을 작성했는지
^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@ [A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
전화번호 확인
(02|010)-\d{3,4}-\d{4}
제한된 이미지 형식만 허용할때
([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
🔍문자 관련
import java.util.*;
class Solution {
public boolean solution(String s) {
if (s.length() == 4 || s.length() == 6) return s.matches("(^[0-9]*$)");
return false;
}
}
정규식 많이 공부하면 활용해 먹을 수 있는 곳이 진짜 많을 거 같다.
class Solution {
public boolean solution(String s) {
if(s.length() == 4 || s.length() == 6){
try{
int x = Integer.parseInt(s);
return true;
} catch(NumberFormatException e){
return false;
}
}
else return false;
}
}