정규식, API_Java

miin·2021년 5월 31일
0

JAVA 

목록 보기
8/13

API
자바 전문프로그래머가 만든 클래스를 API 혹은 라이브러리, 프레임워크라 부른다
키보드와 같은 작용

  • 라이브러리
    내가 코드를 컨트롤 하는것(jquery)
    프레임워크
    규칙을 따라 코딩하는것 (django)
    라이브러리와 프레임워크의 공통점
    누군가가 쓴 코드고, 우리가 가져다 쓰는 것

https://docs.oracle.com/javase/8/docs/api/index.html 참고

String 클래스 API
equals() 들어있는 똑같은 문자열 출력
concat() 두 문자열을 합침
charAt(0) 해당 문자열에서 원하는 인덱스의 문자를 출력
length() 문자열의 문자 개수 리턴
indexOf() 매개변수로 넘겨진 문자열과 같은 문자열이 존재하는 인덱스 리턴,
문자열을 찾지 못하면 -1이 리턴 (앞에서 부터 찾음)
ex) String str1 = "abcdef"; -> str1.indexOf("cd"); -> 출력: 2
lastIndexOf() 매개변수로 넘겨진 문자열의 존재하는 인덱스 리턴 (뒤에서부터 찾음)
substring() 매개변수로 인덱스를 받아 해당문자열의 특정부분을 출력
ex) String str1 = "abcdef"; -> str.substring(2); -> 출력: "cdef"
//2번 인덱스부터 나머지 출력
//2번부터 4번 인덱스 출력 str.substring(2,4); -> 출력: "ce"
split() 매개변수로 받은 문자열을 기준으로 문자열을 분리해서 문자열 배열을 리턴
문자 , % - 로 문자열 분리
ex) String str1 = "사과, 배%-바나나-귤"; -> 출력: 사과 배 바나나 귤
.toLowerCase() 해당문자열을 소문자로 모두 변경하여 리턴
.toUpperCase() 해당문자열을 대문자로 모두 변경하여 리턴
trim() 문자열 앞 뒤로 공백을 제거한 문자열을 리턴
ex) System.out.println(변수.trinm());

자주사용하는 패키지
Math 수학관련
import java.lang.Math;

Random 랜덤
import java.util.Random;
Random ex)
Random rand = new Random();
int x = rand.nextInt(6) + 1; //1-6사이 정수

ArrayList 객체를 담는 보관함 저장/삭제 등 배열의 업그레이드 버전
import java.util.ArrayList;
ArrayList ex)
ArrayList names = new ArrayList();
names.add("kim");
names.add("lee");
names.add("park");
System.out.println(names.get(2)); //get method를 통해 2번배열을 호출함 (park)
names.remove(1); //1번 배열을 삭제후 빈공간이 메꿔짐 (lee삭제)
System.out.println(names.size()); //저장객체가 총 몇개인지

ArrayList ex)
ArrayList list = new ArrayList ();
list.add(new Monster("슬라임",1)); //{슬라임}
list.add(new Monster("오크",3)); //{슬라임, 오크}
list.add(new Monster("골렘",8)); //{슬라임, 오크, 골렘}
System.out.println(list.get(0)); //슬라임
// 슬라임을 토끼로 변경
list.set(0, new Monster("토끼", 1)); // {토끼, 오크, 골렘}
System.out.println(list.get(0)); //토끼
System.out.println(list.size()); //저장객체가 총 3개 들어있다

Arrays.toString : 배열을[,,]로 출력
Collections.suffle(변수); : 무작위로 섞음
new ArrayList() : integer를 담기위한 객체 생성
Integer : int타입을 클래스로 변형한 것

정규식
import java.util.regex.Matcher;
import java.util.regex.Pattern;
이 기술되어 있어야 에러안뜸

주민번호 정규식 : "\d{6}\-[1-4]\d{6}"
핸드폰 정규식 : "^01(?:0|1|6-9])-(?:\d{3}|\{4})-\d{4}"이메일정규식:"a[z09]+(.[az09]+)@(?:w+.)+w+" 이메일 정규식 : "^[_a-z0-9-]+(.[_a-z0-9-]+)*@(?:\\w+\\.)+\\w+"
//주민등록 정규식
ex)String num = "\d{6}\-[1-4]\d{6}";
pattern np = Pattern.compile(num);
String test1 = "123456-1234567";
Matcher m1 = np.matcher(test1);
if(m1.matches()) {
System.out.println("주민 형식이 맞습니다." + test1);
} else {
System.out.println("주민 형식이 아닙니다." + test1);
}

람다식
메소드를 하나의 식(expression)으로 표현한 것
메소드를 람다식으로 표현하면 메서드의 이름과 반화값이 없어지므로, 람다식을 '익명 함수(anonymous function)'이라고도 한다
선언된 매개변수가 하나뿐인 경우에는 괄호를 생략할수 있다. 단 매개변수의 타입(int,double...)이 있으면 괄호를 생략할 수 없다

일반메소드
반환타입 메소드명(매개변수 선언) {
...
}
람다식
(매개변수 선언) -> {
...
}

반환값이 있는 메소드의 경우, return문 대신 식(expression)으로 대신할 수 있다.
식의 연산결과가 자동적으로 반환값이 된다. 이때는 문장(statement)이 아닌 식 이므로 세미콜론을 붙이지 않는다.
변경전
(int a, int b)-> {
return a > b ? a : b;
}
변경후
(int a, int b) -> a > b ? a : b

쓰레드(Thread)
쓰레드 기술법
쓰레드 클래스를 상속받아 클래스 생성
만든 클래스에 run() 메소드를 재정의 한다
상속받은 클래스를 클래스 변수에 생성한 다음 .start()메소드를 호출한다

0개의 댓글