Dorothy_YANG
With Dorothy
Dorothy_YANG
전체 방문자
오늘
어제
  • 분류 전체보기 (279)
    • Hi, I'm Dorothy 🕵️‍♂️ (21)
      • Slowly but Surely (18)
      • IT certifications (3)
    • 🤯TIL (80)
      • HTML & CSS (2)
      • Javascript & jQuery (13)
      • React (13)
      • C언어 (1)
      • JAVA (22)
      • Python (2)
      • Oracle SQL (10)
      • My SQL (5)
      • Spring (12)
    • 💻Programmers (17)
    • 🏫 Open API_JAVA (101)
    • 🌎 Project (10)
      • Shopping (10)
    • 💥 Error (24)
    • ⚙ Setting (23)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • HTML
  • SQLD합격
  • sql기간
  • 이것이자바다
  • Eclipse
  • 기간설정
  • SQL
  • 시작일종료일
  • 연습문제
  • 노마드코더
  • 코딩앙마
  • AllArgsConstructor
  • Javascript
  • oracle
  • colaboratory
  • 기간쿼리
  • 서버등록
  • Database
  • googlecolaboratory
  • 파이썬온라인
  • 창초기화
  • spring
  • 오류해결
  • 독학후기
  • CSS
  • 백준
  • java
  • SQLD합격후기
  • 비쥬얼스튜디오코드
  • 콜라보레이토리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Dorothy_YANG

With Dorothy

[42일차] String 클래스 / String Tokenizer 클래스 / String Buffer, String Builder 클래스 / 정규 표현식과 Pattern 클래스 / Arrays 클래스 /  포장(Wrapper) 클래스 (API 클래스)
🏫 Open API_JAVA

[42일차] String 클래스 / String Tokenizer 클래스 / String Buffer, String Builder 클래스 / 정규 표현식과 Pattern 클래스 / Arrays 클래스 / 포장(Wrapper) 클래스 (API 클래스)

2022. 9. 22. 10:15
728x90

20220921(수)

  • 목차 (API 클래스)
    - String 클래스
    - String Tokenizer 클래스 
    - String Buffer, String Builder 클래스
    - 정규 표현식과 Pattern 클래스
    - Arrays 클래스
    - 포장(Wrapper) 클래스

< String 클래스 >

  • 문자열은 데이터로서 아주 많이 사용된다.
  • 때문에 문자열을 생성하는 방법과 추출, 비교, 찾기, 분리 변환 등을 제공하는 메소드를 잘 익혀두어야 함

  • String 생성자
    바이트 배열 ➡ 문자열로 변환
    파일의 내용을 읽거나, 네트워크를 통해 받은 데이터는 보통 byte[] 배열이므로 이것을 문자열로 변환하기 위해 사용

  • String 메소드
문자 추출 (charAt()) 매개 값으로 주어진 인덱스의 문자 리턴
문자열 비교 (equlas()) 문자열 비교할 때 == 연산자 사용 시 원하지 않는 결과 발생 주의!
바이트 배열로 변환 (getBytes()) 문자열 ➡ byte[] 변환
ex) 네트워크로 문자열 전송하거나, 문자열을 암호화할 때 변환함
문자열 찾기 (indexOf()) 일치되는 검색어의 첫문자 인덱스를 반환한다.
특정 문자열 포함 여부 확인가능
if(문자열.indexOf("찾는 문자열") != -1) { // 포함 } else { // 포함 X }
문자열 길이 (length()) 문자열의 길이(문자의수)를 리턴한다. (공백도 문자에 포함)
문자열 대치 (replace()) String 객체의 문자열 : 변경 불가한 특성 有

첫 번째 매개값인 문자열 찾음 ➡ 두 번째 매개값인 문자열로 대치 
➡ 새로운 문자열 리턴
문자열 잘라내기 (substring()) - substring(int beginIndex, int endIndex) : 주어진 시작과 끝 인덱스 사이 문자열 추출
- substring(int beginIndex) : 주어진 인덱스 이후부터 끝까지 문자열 추출
알파멧 소.대문자 변경
(toLowerCase(), toUpperCase())
- toLowerCase() 메소드 : 문자열을 모두 소문자로 바꾼 새로운 문자열 생성 후 리턴
- toUpperCase() 메소드 : 문자열을 모두 대문자로 바꾼 새로운 문자열 생성 후 리턴
(* 최초의 기억장소는 재사용하지 않는다! 결과가 새로운 기억장소로 만들어진다.)
문자열 앞뒤 공백 잘라내기 (trim()) 좌우측 공백제거 (*중간 공백 제거 불가능)
문자열 변환 (valueOf()) 기본 타입의 값을 문자열로 변환하는 기능

 


< String Tokenizer 클래스 > 

문자열이 특정 구분자(delimiter)로 연결되어 있을 경우, 구분자 기준으로 문자열 분리 시 방법 2가지

  • 문자열 분리방법
String의 split() 메소드 이용  java.util 패키지의 StringTokenizer 클래스 이용
정규 표현식으로 구분 문자로 구분
배열에 저장하고 리턴

if) 문자열 = text, 정규표현식 제외 한 문자 추출은?
String[] names = text.split("&|,|-");
손쉽게 문자열 분리 가능
전체 토큰 수, 남아 있는 토큰 여부 확인 후 토큰 읽기
(* 토큰 : 분리할 수 있는 작은 단위의 데이터)

StringTokenizer st = new StringTokenizer("문자열", "구분자");

 


< String Buffer, String Builder 클래스 > - 문자열 변경 작업이 많은 경우 사용

  • String은 내부의 문자열 수정 불가 ➡ 대치된 새로운 문자열 리턴

출처 : 이것이 자바다


  • buffer : 데이터를 임시로 저장하는 메모리
StringBuffer, StringBuilder
버퍼(buffer:데이터를 임시로 저장하는 메모리)에 문자열 저장
버퍼 내부에서 추가, 수정, 삭제 작업 가능
(String처럼 새로운 객체를 만들지 않고도 문자열 조작 가능)
String Buffer 사용 String Builder 사용
멀티 스레드 환경 단일 스레드 환경

*스레드는 추후에 다시 알아보자!

 


<정규 표현식과 Pattern 클래스 > 

  • 정규 표현식 작성 방법
    문자열이 정해져 있는 형식으로 구성되어 있는지 검증할 때 사용
    ex) 이메일, 전화번호, 비밀번호 등
기호 설명 기호 설명
[] 한 개의 문자 * 없음 또는 한 개 이상
\d 한 개의 숫자, [0-9]와 동일 + 한 개 이상
\s 공백 {n} / {n,} 정확히 n개 / 최소한 n개
\w 한 개의 알파벳 또는 한 개의 숫자
[a-zA-Z_0-9]와 동일
{n,m} n개에서부터 m개까지
? 없음 또는 한개 () 그룹핑

ex1) 전화번호를 위한 정규 표현식
➡ (02|010)-\d{3,4}-\d{4}로 표현 : 02또는 010 - 3자리 또는 4자리 숫자 - 4자리 숫자

ex2) 이메일을 위한 정규 표현식
➡ \w+@\w+\.\w+(\.\w+)?로 표현
: 한 개 이상의 알파벳 또는 숫자 @ 한 개 이상의 알파벳 또는 숫자.한개이상의 알파벳 또는 숫자
(\.\w+)? : \.\w+이 없거나 한번 더 올 수 있음 ex. @dorothy.or.kr

 

  • Pattern 클래스
    정규 표현식으로 문자열을 검증하는 역할 ➡ 정적 메소드인 matches()가 검증기능 제공함
    * 결과는 boolean 타입!
    boolean result = Pattern.matches("정규식", "입력된 문자열");

< Arrays 클래스 >

  • 배열 조작 기능을 가지고 있는 클래스 - 배열 복사, 항목 정렬, 항목 검색

  • Arrays 클래스
배열 복사 Arrays.copyOf(원본배열, 복사할 길이)
 0 ~ (복사할 길이-1)까지 항목 복사
 복사할 길이는 원본 배열의 길이보다 커도 되며 타겟 배열의 길이

copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스)
 시작인덱스 ~ (끝 인덱스-1)까지 항목 복사

*System.arraycopy(원본 배열, 원본시작인덱스, 타겟배열, 타겟시작인덱스, 복사개수)
 : 단순 배열을 복사할 목적이라면 Arrays 클래스 사용하지 않고 위 메소드 이용가능
배열 항목 비교 Arrays.equals(배열, 배열) : 1차 항목의 값만 비교
Arrays.deepEquals(배열, 배열) : 중첩된 배열의 항목까지 비교
배열 항목 정렬 Arrays.sort(배열) : 항목 오름차 순으로 정렬
기본 타입이거나 String 배열 자동 정렬
사용자 정의 클래스 배열은 Comparable 인터페이스를 구현해야만 정렬
배열 항목 검색 특정 값 위치한 인덱스 얻는 것
Arrays.sort(배열)로 먼저 정렬
Arrays.binarySearch(배열, 찾는 값) 메소드로 항목을 찾아야 

 


< 포장(Wrapper) 클래스 >

  • 포장(Wrapper) 객체란?
    기본 타입(byte, char, short, int, long, float, double, boolean) 값을 내부에 두고 포장하는 객체
    기본 타입의 값은 외부에서 변경 불가 
  • 박싱(Boxing)과 언박싱(Unboxing)
박싱(Boxing)  언박싱(Unboxing)
기본 타입의 값을 포장 객체로 만드는 과정 포장 객체에서 기본 타입의 값을 얻어내는 과정
1) 생성자 이용
   ex) Integer obj = new Integer(1000);

2) valueOf
()메소드 이용
   Integer obj = Integer.valueOf(1000);
   Integer obj = Integer.valueOf("1000");
언박싱 코드
- 각 포장 클래스마다 가지고 있는 클래스 호출

- 기본 타입명 + Value()
- ex) int num = obj.intValue();

 

  • 자동 박싱과 언박싱
    - 자동 박싱 : 포장 클래스 타입에 기본값이 대입될 경우 발생
    - 자동 언박싱 : 기본 타입에 포장 객체가 대입될 경우 발생

  • 문자열을 기본 타입 값으로 변환
    parse + 기본 타입 명 ➡ 정적 메소드

  • 포장값 비교
    포장 객체는 내부 값을 비교하기 위해   ==와!= 연산자 사용 불가
    값을 언박싱해 비교하거나, equals() 메서드로 내부 값 비교할 것 
728x90
저작자표시 (새창열림)

'🏫 Open API_JAVA' 카테고리의 다른 글

[44일차] 멀티 스레드 개념 / 작업 스레드 생성과 실행 / 스레드 우선순위  (0) 2022.09.26
[43일차] Math, Random 클래스 / Date, Calendar 클래스 / Format 클래스 / java.time 패키지  (0) 2022.09.23
[41일차] 자동 리소스 닫기 / 사용자 정의 예외와 예외 발생 / java.lang과 java.util 패키지 / Object 클래스 / Tomcat 설치  (0) 2022.09.21
[40일차] 인터페이스 상속 / 디폴트 메소드와 인터페이스 확장 / 중첩 클래스 / 익명 객체 / 예외처리  (0) 2022.09.20
[39일차] 추상 클래스 / 추상 메소드 / 인터페이스  (0) 2022.09.19
    '🏫 Open API_JAVA' 카테고리의 다른 글
    • [44일차] 멀티 스레드 개념 / 작업 스레드 생성과 실행 / 스레드 우선순위
    • [43일차] Math, Random 클래스 / Date, Calendar 클래스 / Format 클래스 / java.time 패키지
    • [41일차] 자동 리소스 닫기 / 사용자 정의 예외와 예외 발생 / java.lang과 java.util 패키지 / Object 클래스 / Tomcat 설치
    • [40일차] 인터페이스 상속 / 디폴트 메소드와 인터페이스 확장 / 중첩 클래스 / 익명 객체 / 예외처리
    Dorothy_YANG
    Dorothy_YANG
    Slowly but Surely, 비전공 문과생의 개발공부

    티스토리툴바