오전 :
INDEX
- 정규표현식
- 배열 복사
- 베열 항목 비교
정규표현식
대괄호는 하나의 문자로 처리한다.
문자열 안에 대괄호 안에 정규식을 작성할 수 있다.
리턴 값은 논리 결과 값이 나온다. ( true , false )
활용
조건이 까다로울순 있지만 , 활용을 잘 하면 , 가능성이 뛰어나다.
어휘 검색 등.
[] 와 기호 조건을 사용하면 더 많은 경우의 조건을 작성 가능.
기호
- -
- 범위를 지정함
- ^
- Not 의미
- \d
- 숫자 이면 참
- \D
- 숫자가 아닌 글자
- \w
- 0 - 9 , a - z ,A -Z 는 True. 이외의 기호들은 False.
- ?
- 바로 앞의 문자에 대해 0 개 또는 1개
- +
- 바로 앞의 문자에 대해 1개 또는 n개
- *
- 바로 앞의 문자에 대해 0개 또는 n개
- .
- 문자 . 문자
- 문자사이에 어떤 글자든지 참으로 반환.
- [.] 혹은 \. 을 쓰면 문자 사이에 . 만 ture로 반환.
- {조건1, 조건2}
- 바로 앞의 문자에 대해 조건1 부터 조건2 의 개수 안에 들어가면 true.
- 앞의 문자는 () 소괄호로 묶으면 하나로 처리가 되 잘 파악을 해주자.
괄호 사이 - 는 범위를 나타내며, 대 소문자를 구분할 수 있다.
^ ( 꺽쇠 ) 는 not의 의미다. ( 이 조건이 아니면 참이다. )
String Exam1 = " [a - z ] " ; // 소문자 a 부터 z 는 모두 true 반환
String Exam2 = " [ A - Z ] "; // 대문자 A 부터 Z 참
String Exam3 = " ab[abcd] 기호 " ; // True조건 : ab는 무조건 있어야 하며 뒤의 기호의 조건에 따라 대괄호의 문자를 맞게 작성한다.
// 기호에는 w , ? , + , * 가 있다.
예제
import java.util.Scanner;
import java.util.regex.Pattern;
public class RegExpPatternExam {
public static void main(String[] args) {
/*
String regExp = "ab[abcd]?";
System.out.println( Pattern.matches(regExp, "abe") );
*/
String regExp = "(02|010)-\\d{3,4}-\\d{4}" ; // | 는 or 표현
// 02로 시작하거나 010으로 시작하고 - 가 있고, 숫자가 3자 또는 4자 다음 - 다음 숫자 4자가 오는 검증 구문.
String data = "02-1234-5678"; // 참이지만 010 일때 4자라는 조건이 필요.
if ( Pattern.matches(regExp, data)) {
System.out.println("입력 번호가 규칙에 맞습니다.");
}else {
System.out.println("입력 번호가 규칙에 맞지 않습니다. ");
}
// 이메일 테스트
String emailRegExp = "\\w{4,30}@\\w+\\.(\\w+)?";
String emailData = "justdoil98gmail.com";
@SuppressWarnings("resource")
Scanner scan = new Scanner(System.in);
while(!Pattern.matches(emailRegExp, emailData) ) {
System.out.println("규칙에 맞지 않는 이메일 작성했습니다.");
emailData = scan.next();
}
}
}
배열 복사
예제
import java.util.Arrays;
public class ArraysCopyExam01 {
// 배열 복사
public static void main(String[] args) {
//3가지 존재
char[] arr1 = {'J','A','V','A','1','2','3'};
//배열의 복사는 Arrays클래스와 System클래스에서 제공되는 메서드를 이용할 수 있다.
char[] copyArr = new char[arr1.length+4];
System.arraycopy(arr1, 0, copyArr, 0, arr1.length);
System.out.println(arr1);
System.out.println(copyArr);
// Arrays.copyof
char[] copyofArr2 = Arrays.copyOf(arr1, arr1.length);
System.out.println(copyofArr2);
// Arrays.copyofRange 메서
char[] corArr3 = Arrays.copyOfRange(arr1, 0, arr1.length);
System.out.println(corArr3);
}
}
N차원 배열 비교
일차원 배열의 경우는 배열을 복사해서 사용하는데 무리가 없다.
이차원 이상의 배열일 경우 반드시 깊은 복사를 ( 직접 구현) 해야 하고,
같은지 판단하기 위해서는 Arrays.deepEquals 사용
예제
배열 정렬
형식 지정자
형식을 부여, 조건에 맞게 출력 가능.
종류
- %d
- 다양한 지정자가 있다.
// 시간 지정자.
import java.util.Date;
public class DateFormat {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
System.out.printf
(" %1$ty년 %1$tm월 %1$td일" , now );
}
}
점심 : 야무지게 먹어야징
오후 :
INDEX
- thread
Thread
하나의 코드 실행 흐름.
멀티쓰레드 :
스레드들이 동시에 여러개 실행될 수 있다. ( 그런 것 처럼 보이다.)
main -> 하나의 쓰레드이다.
'공부 > 오늘 배운것' 카테고리의 다른 글
22.11.08.Tue - 알고리즘은 마법이다. (0) | 2022.11.08 |
---|---|
22.11.07.Mon - 익숙해져야한다. (0) | 2022.11.07 |
22.11.04.Fri - 불금 불타게 (0) | 2022.11.04 |
22.11.03.Thu - 벽을 만나다. (0) | 2022.11.03 |
22.11.02.Wed - 배움에 끝이 없다. 그러니 그 과정을 즐길 수 밖에. (0) | 2022.11.02 |