일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- DB
- 스프링
- 디자인
- 재택근무
- java기초
- ncs
- 패스트캠퍼스
- javabasic
- linux
- 패스트캠퍼스후기
- 디자인패턴
- 자바기초
- 자바예제
- 자바기본
- String
- 패캠챌린지
- 리눅스
- DesignPattern
- 자바
- 자바연습문제
- js
- java
- 국비
- 직장인자기계발
- 웹
- 직장인인강
- Spring
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 데이터베이스
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(25)-정규식 본문
정규식(Regular Expression)
정규식이란 텍스트 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열을 찾아내기 위해
사용하는 것으로 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다.
Java124_RegEx.java
public class Java124_RegEx { public static void main(String[] args) { String sn="java korea"; String sg=""; String st="java korea"; //j_v_ ko_e_ for(int i=0;i<sn.length();i++) { if(sn.charAt(i)=='a' || sn.charAt(i)=='r') sg+='_';//문자열로 바뀜 else sg+=sn.charAt(i); } System.out.println(sg); System.out.println("regular expression을 이용한 문자변경"); //[]대괄호는 or를 의미한다. //sn변수에 저장된 문자열에서 a이거나r이면 "_"로 변경한다. System.out.println(sn.replaceAll("[ar]"/*or의미*/, "_")); //sn변수에 저장된 문자열에서 a이거나 r이 포함되면 true 아니면 false을 리턴한다 System.out.println(sn.matches(".*[vr].*"));// .임의의 문자 *여러개 []는 or의 의미 //sn변수에 저장된 문자열에서 a이거나 r로 시작되면 true 아니면 false을 리턴한다 System.out.println(sn.matches("[ar].*"));//false //sn변수에 저장된 문자열에서 a이거나 r로 끝나면 true 아니면 false을 리턴한다 System.out.println(sn.matches(".*[ar]"));//true //{2,3}2개부터 3개까지의 공백을"@"으로 변경한다. System.out.println(st.replaceAll("\\s{2,3}", "@"));// \s(공백)이 {2,3}2개이거나 3개이면 {2,}(2개이상이면) } }

Java125_RegEx.java
public class Java125_RegEx { public static void main(String[] args) { String sn = "1a234"; String sb = "2net5"; String st = "aetwefgcc"; //a-zA-Z_*$가 sn변수에 포함이 되어있으면 true, 아니면 false을 리턴한다 System.out.println(sn.matches(".*[a-zA-Z_*$].*")); //sn변수에 0-9가 포함되어있으면 true 아니면 false을 리턴한다. System.out.println(sn.matches(".*[0-9].*")); System.out.println(sn.matches(".*\\d.*")); //sb변수에 저장된 값이 2로 시작되면 true 아니면 false을 리턴한다. System.out.println(sb.matches("2.*")); //sb변수에 저장된 값이 2로 시작해서 5로 끝나면 true 아니면 false을 리턴한다. System.out.println(sb.matches("2.*5")); System.out.println(sb.matches("[ab].{5,}")); //st변수에 저장된 문자열이 a또는 b로 시작하고 cc로 끝나면서 // 사이에는 임의의문자 최소1개에서5개를 포함한다. System.out.println(st.matches("[ab].{1,5}cc")); } }

Java126_RegEx.java
정상적으로 주민번호가 입력이 되었으면 true을 반환하고 아니면
false을 반환하는 프로그램을 구현하시오.
[출력결과]
851306-2689540 승인이 되었습니다.
750625-16843 다시 입력하세요.
public class Java126_RegEx { public static void main(String[] args) { System.out.print("851306-2689540"); display(process("851306-2689540")); System.out.print("750625-16843"); display(process("750625-16843")); }//end main() public static boolean process(String sn) { // 여기를 구현하세요. return sn.matches("\\d{6}-\\d{7}"); }//end process() public static void display(boolean res) { if (res) { System.out.println(" 승인이 완료되었습니다."); } else { System.out.println(" 다시 입력하세요."); } }// end display() }//end class

Java127_RegEx.java
data변수에 저장된 값이 아래와 같이 출력이 되도록 process메소드를 구현하시오.
[출력결과]
java
jsp
spring
public class Java127_RegEx { public static void main(String[] args) { String data="java/jsp:spring"; process(data); }//end main() public static void process(String data) { //여기에 구현하시오. String[] arr=data.split("[/:]"); for(String alpa:arr) System.out.println(alpa); System.out.println(data.replaceAll("[/:]","\n")); }//end process() }//end class

Pattern.matcher() : 빠르게 어떠한 text(String)이 주어진 Pattern에
있는지를 확인한다.
Pattern.comile(): 여러개의 텍스트를 재사용 가능한 Pattern
인스턴스로 컴파일 한다.
find() : 최초의 패턴 위치로 이동한 뒤 True 반환, 없으면 false
find(int start) : start 위치 부터 find
start() : 매칭되는 패턴의 시작 인덱스 반환
start(int group) : group이 매칭되는 시작 인덱스 반환
end() : 매칭된 패턴 한칸 뒤 인덱스 반환
end(int group) : 지정되 그룹이 매칭되는 한칸 뒤 인덱스 반환
group() : 최초로 그룹 매칭된 패턴을 반환 group(int group) : 그룹 매칭된 부분중
group번째 패턴을 반환
groupCount() : 패턴내 그룹핑(괄호로 묶은 패턴들)의 갯수 반환
matches() : 패턴이 전체 문자열과 일치하면 True
Java128_RegEx.java
public class Java128_RegEx { public static void main(String[] args) { String input1 = "wodkwodk"; String input2 = "maaa3aaaaa"; String input3 = "252"; // \\w : 영문자, 숫자 [0-9a-zA-Z] System.out.println(input1.matches(".*[\\w].*")); System.out.println(Pattern.compile("[\\d]").matcher(input1).find()); /*Pattern pn = Pattern.compile("[a-zA-Z]"); Matcher ce=pn.matcher(input1); boolean res=ce.find(); System.out.println(res);*/ System.out.println(Pattern.compile("[a-zA-Z]").matcher(input1).find()); System.out.println(input1.matches("[\\w]{5,10}") && input1.matches(".*\\d.*") && input1.matches(".*[a-zA-Z].*")); Pattern pn1=Pattern.compile("[\\d]"); Pattern pn2=Pattern.compile("[a-zA-Z]"); System.out.println(input1.matches("[\\w]{5,10}") && pn1.matcher(input1).find() && pn2.matcher(input1).find()); System.out.println(input2.matches("[\\w]{5,10}") && pn1.matcher(input2).find() && pn2.matcher(input2).find()); System.out.println(input3.matches("[\\w]{5,10}") && pn1.matcher(input3).find() && pn2.matcher(input3).find()); }//end main() }//end class

'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(27)-정규식 문제풀이 (0) | 2019.07.31 |
---|---|
자바 기초 NCS교육과정(26)-스트링 버퍼 (0) | 2019.07.31 |
자바 기초 NCS교육과정(24)-문자열 문제풀이 (0) | 2019.07.31 |
자바 기초 NCS교육과정(23)-문자열 (0) | 2019.07.31 |
자바 기초 NCS교육과정(22)-API&오브젝트 (0) | 2019.07.31 |