버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 안드로이드
  • 홈페이지
  • sqld
  • 큐
  • 스택
  • 스프링
  • 톰캣
  • final필드
  • 코틀린
  • 문제풀이
  • callback
  • 함수
  • 이클립스
  • SQL
  • opacity
  • 변수
  • 버블소트
  • 세션
  • 데이터베이스
  • 이것이자바다
  • 객체지향
  • 기본쿼리
  • 포트폴리오
  • foreach
  • 만들기
  • 게시판
  • 배열
  • 부트스트랩
  • dml
  • 오라클

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

String / StringTokenizer / StringBuffer , Builder / 정규표현식 , Pattern / Arrays / Wrapper 클래스
🏃‍♀️ Do it !/TIL

String / StringTokenizer / StringBuffer , Builder / 정규표현식 , Pattern / Arrays / Wrapper 클래스

2022. 9. 21. 16:06
728x90

2022 / 9 / 21 수

  • String 클래스
  • StringTokenizer 클래스
  • StringBuffer , Builder 클래스
  • 정규표현식 , Pattern클래스
  • Arrays 클래스
  • Wrapper클래스

✔ String클래스

String 생성자

- byte[ ] 배열을 문자열로 변환하기 위해 사용


String 메소드

- 문자열의 추출, 비교, 찾기, 분리, 변환 등과 같은 다양한 메소드를 가진다. 

리턴 타입 메소드명 의미
char charAt (int index) 특정 위치 문자 리턴
boolean equals(Object anObject) 두 문자열 비교
byte [ ]  getBytes( ) byte [ ] 로 리턴
getBytes(Charset charset) 주어진 문자셋으로 인코딩한
byte [ ] 로 리턴
int indexOd(String str) 문자열 내 주어진 문자열의 위치를 리턴
length( ) 총 문자 수를 리턴
String replace(CharSequence target,
CharSequence repalcement)
target부분을 replacement로 
대치한 새로운 문자열 리턴
substring(int beginindex) beginindex 위치에서 끝까지 잘라낸 새로운 문자열 리턴
substring(int beginlndex, int endindex) beginindex 위치에서 endindex전까지 잘라낸 새로운 문자열 리턴
toLowerCase( ) 알파벳 소문자로 변환한 새로운 문자열 리턴
toUpperCase( ) 알파벳 대문자로 변환한 새로운 문자열 리턴
trim( ) 앞 뒤 공백을 제거한 새로운 문자열을 리턴
valueOf(int i)
valueOf(double d)
기본 타입값을 문자열로 리턴

1. 문자 추출( charAt ( ) )

매개 값으로 주어진 인덱스의 문자를 리턴한다.  ( 공백도 문자에 포함 )

String subject = " 자바 공부 ";

char charValue = subject.charAt(3);

👇

자 바    공 부

 0  1  2  3  4

 

charAt(3)의 결과 값은 '공' 이 된다 !


2. 문자열 비교 ( equals( ) )

== 연산자를 사용하여 비교한다. 


3. 바이트 배열로 변환 ( getBytes( ) )

네트워크로 문자열을 전송하거나 문자열을 암호화할 때 주로 사용한다. 

 

UTF-8에서 알파벳은 1바이트, 한글은 3바이트로 변환한다. 

한글 문자열 " 안녕하세요 " => 3 * 5 = 15byte !


4. 문자열 찾기( IndexOf( ) )

매개값으로 주어진 문자열이 시작되는 인덱스를 리턴한다. 

주어진 문자열이 포함되어있지 않으면 -1을 리턴 !

String subject = "자바 프로그래밍";

int index = subject.indexOf(" 프로그래밍 ");

 

프로그래밍 문자열이 위치해있는 index값인 3이 결과값으로 나온다. 


5. 문자열 길이 ( length( ) )

문자열의 길이를 리턴한다 

String subject = "자바 프로그래밍";

int length =subject.length( );

 

length() 에는 8이 저장된다. 


6. 문자열 대치 ( replace( ) )

1. 첫번쨰 매개값인 문자열을 찾는다

2 .두번째 매개값인 문자열로 대치한다

3. 새로운 문자열을 리턴한다. 


7. 문자열 잘라내기(substring ( ) )

substring(int beginlndex, int endindex)

주어진 시작과 끝 인텍스 사이의 문자열을 추출한다. 

 

substring(int beginlndex)

주어진 인덱스 이후부터 끝까지의 문자열을 추출한다. 


8. 알파벳 소대문자 변경하기 ( toLowerCase( ), toUpperCase( ) )

toLowerCase( )

문자열을 모두 소문자로 바꾼다.

 

toUpperCase( )

문자열을 모두 대문자로 바꾼다. 


9. 문자열의 앞뒤 공백 잘라내기 ( trim ( ) )

문자열의 앞뒤 공백을 제거한 새로운 문자열을 생성하고 리턴한다. 


10. 문자열 변환( valueOf( ) )

기본 타입의 값을 문자열로 변환해준다. 


✔ StringTokenizer 클래스

문자열이 특정 구분자로 연결되어 있는 경우,

구분자를 기준으로 부분 문자열을 분리하기 위해

1. split() 메소드 사용

2. java.util.StringTokenizer 클래스 사용을 한다.

 

split( ) 메소드

정규 표현식을 구분자로 해서 부분 문자열을 분리하고, 배열에 저장하고 리턴 한다. 

 

StringTokenizer 클래스

1 . 첫번쨰 매개값으로 전체 문자열을 주고

2 . 두번째 매개값으로 구분자를 준다.


✔ StringBuffer , Builder 클래스

문자열을 저장하는 string은 내부의 문자열을 수정할 수 없음!

문자열을 변경하는 작업이 많은 경우 string클래스를 사용하는 것보다

StringBuffer, StringBuilder 클래스를 사용하자 ~

 

StringBuffer, StringBuilder 클래스 특징

내부 버퍼(버퍼 :데이터를 임시로 저장하는 메모리)에 문자열을 저장하여 추가, 수정, 삭제 작업이 가능하다. 
StringBuffer StringBuilder
멀티 스레드 환경에서 사용 가능 단일 스레드 환경에서 사용 가능

 

// String클래스는 새로운 문자열이 생성 될 때마다 새로운 기억장소를 생성하여 메모리 및 성능 문제를 야기 할 수 있다.
// StringBuilder, StrungBuffer 클래스를 사용하면 객체 생성시 힙영역의 기억장소를 재사용한다.
		
StringBuilder sb = new StringBuilder();
		
sb.append("java ");
sb.append("progeam study");
System.out.println(sb.toString()); // 문자열을 끝에 추가
		
sb.insert(4,  "2");
System.out.println(sb.toString()); // index4번위치 뒤에 2를 넣어라 => java2 progeam study

✔ 정규표현식 , Pattern클래스

정규표현식이란?

문자열에서 특정 문자 조합을 찾기 위한 패턴

ex ) 이메일, 전화번호, 비밀번호, 아이디 체크 등

 

Pattern클래스


API 도큐먼트에서 Pattern클래스를 찾아서 참고하자 !

https://docs.oracle.com/javase/8/docs/api/

 

Java Platform SE 8

 

docs.oracle.com

이스케이프 표현 참고하기

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String

 

String - JavaScript | MDN

String 전역 객체는 문자열(문자의 나열)의 생성자입니다.

developer.mozilla.org


✔Arrays 클래스

Arrays

배열 조작 기능을 갖는다.

배열 조작 : 배열 복사, 항목 정렬, 항목 검색


1. 배열 복사

Arrays.copyOf (원본 배열, 복사할 길이)

index 0 부터 복사하고자 하는 길이의 -1 까지 항목을 복사한다. 

 

copyOfRange(원본 배열, 시작 인덱스, 끝 인덱스)

시작 인덱스부터 끝 인덱스의 -1 까지 항목을 복사한다. 

 

System.arraycopy( 원본 배열, 원본 시작 인덱스, 타켓배열, 타켓 시작 인덱스, 복사 개수)


2. 배열 항목 비교

Arrays.equals(배열, 배열)

1차 항목의 값만 비교

 

Arrays.deepEquals(배열, 배열) 

중첩된 배열의 항목까지 비교

int[][] original = { {1,2},{3,4} };
		
// 얕은 복사 후 비교
System.out.println("얕은 복제 후 비교");

int[][] cloned1 = Arrays.copyOf(original, original.length); // 새로운 배열 기억장소

System.out.println("배열 주소 비교 : " + original.equals(cloned1)); //false
System.out.println("1차 배열 항목값 비교 : " + Arrays.equals(original, cloned1)); //true
System.out.println("중첩 배열 항목값 비교 : " + Arrays.deepEquals(original, cloned1)); //true
		
//깊은 복사 후 비교
System.out.println("깊은 복제 후 비교");
int[][] cloned2 = Arrays.copyOf(original, original.length); // 새로운 배열 기억장소

cloned2[0] = Arrays.copyOf(original[0], original[0].length);
cloned2[1] = Arrays.copyOf(original[1], original[1].length);

System.out.println("배열 주소 비교 : " + original.equals(cloned2)); //false
System.out.println("1차 배열 항목값 비교 : " + Arrays.equals(original, cloned2)); //false
System.out.println("중첩 배열 항목값 비교 : " + Arrays.deepEquals(original, cloned2)); //true

3. 배열 항목 정렬

Arrays.sort( ) 메소드의 매개값으로 지정하면 자동으로 오름차순으로 정렬이 된다 !

 

4. 배열 항목 검색

1. Arrays.sort( ) 메소드로 오름차순으로 정렬

2. Arrays.binarySearch( )메소드로 항목을 찾는다. 

// 기본 데이터 타입 값 검색
int[] scores = { 99, 97, 98 };
Arrays.sort(scores); // 오름차순 정렬
System.out.println(Arrays.toString(scores));
int index = Arrays.binarySearch(scores, 99);
System.out.println("찾은 인덱스: " + index);
		
// 문자열 검색
String[] names = { "허니버터칩", "나쵸", "초코송이" };
Arrays.sort(names);
System.out.println(Arrays.toString(names));
index = Arrays.binarySearch(names, "허니버터칩");
System.out.println("찾은 인덱스: " + index);


✔ Wrapper클래스

Wrapper 포장 객체란?

기본 타입 (byte, char, short, int, long, float, double, boolean) 값을 내부에서 두고 포장하는 객체이다.

기본 타입의 값은 외부에서 변경이 불가하다 ! 

기본타입 포장 클래스
byte Byte
char Character
short Short
int Integer
long Long
float Float
double Double
boolean Boolean

박싱 & 언박싱

Boxing : 기본 타입의 값을 포장 객체로 만드는 과정

Unboxing : 포장 객체에서 기본 타입의 값을 얻어내는 과정

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

프로세스 / 스레드 / 동기화 메소드, 동기화 블록  (0) 2022.09.23
Date , Calendar 클래스/ Format 클래스 / java.time 패키지  (1) 2022.09.22
예외 처리 / 자바 API / Object 클래스 / class 클래스 / tomcat설치  (0) 2022.09.20
다중 인터페이스 / 디폴트 메서드 / 중첩 클래스 / 익명객체 / 예외 처리  (0) 2022.09.19
인터페이스 / 개념체크  (0) 2022.09.16
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • 프로세스 / 스레드 / 동기화 메소드, 동기화 블록
    • Date , Calendar 클래스/ Format 클래스 / java.time 패키지
    • 예외 처리 / 자바 API / Object 클래스 / class 클래스 / tomcat설치
    • 다중 인터페이스 / 디폴트 메서드 / 중첩 클래스 / 익명객체 / 예외 처리
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바