상세 컨텐츠

본문 제목

자바_String 클래스 /문자열 함수 메서드/불변, 상속/문자열 검색,분리,추출

java_자바

by 쫑메이 2020. 7. 30. 00:20

본문

 

 

 

 

 

 

 


 

 

 

 

 

 


[자바]String클래스이란?

 


 

 

참조 타입(reference type)

 

● 문자열을 관리하는 클래스

● 내부적으로는 char[ ]타입으로 각각의 문자들을 관리

● 불변성(Inmmutable)클래스

 

 

★String은 변하지 않는(immutable) 객체이기 때문에

문자열을 변수처럼 사용하고 싶다면 StringBuffer클래스를 사용해야 한다.

 

 

 

 

 

 

 

 

 

 

 


[자바]String클래스_특징


 

 

 

- String은 final 클래스로 상속불가능한 클래스

생성자 사용 및 리터럴 할당 방법으로 문자열 생성 가능

 

 

- 한 번 생성된 문자열은 불변이므로, 문자열을 수정하면

수정된 내용을 갖는 새로운 문자열을 생성해 다른 공간에 저장한다

 

따라서 문자열 수정이 빈번한 경우 StringBuilder나 StringBuffer클래스가 적합

 

 

 

- String클래스에 각종 메서드를 제공하므로 효율적인 문자열 처리가 가능하다

 

 

 

 

 

 

 

 

 

 


[자바] String클래스_문자열 생성방법


 

 

(1) 리터럴을 직접 할당하는 방법

 

-동일한 문자열 존재 여부를 Constant Pool(상수풀)에서 검색하여 존재하지 않으면 새로 생성,

존재할 경우 주소값 공유

 

- 그래서 동일한 문자열이 존재할 경우 저장 공간의 낭비가 없음

 

- 기존에 존재하지 않는 문자열이므로 상수 풀에 새 공간 할당받음

 

- s1이 가리키는 상수 풀과 동일한 위치의 주소값을 전달받음

 

 

 

 

※(자바는 문자열 리터럴이 동일하다면 String 객체를 공유하도록 되어있으므로

는 동일한 객체를 가리킨다)

 

 

 

 


 

 

 

 

(2) new연산자로 String 객체를 생성하여 할당하는 방법

 

- 동일한 문자열 존재여부와 관계없이 무조건 힙 공간에 문자열 생성

 

- 즉 s3, s4는 문자열 내용은 같지만 저장된 공간은 다르다

 

 

 

 

 

따라서 문자열의 내용만을 비교할 때에는 String 객체의 equals()메소드를 사용해야 함!!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스_주요 메서드


 

 

- String 클래스에서 제공되는 다양한 메서드를 활용하여

문자열에 대한 검색, 분리, 추출, 변환, 비교등 여러 작업을 수행

 

 

- 인덱스의 범위는 0부터 문자열의 길이-1까지만 사용가능

 

 

- String클래스의 메서드들을 적용하더라도 원본 문자열에는 영향이 없다

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 _length()


 

 

 

length() :문자열 길이 리턴

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드

: equals()


 

 

 

equals() : 문자열 비교(대소문자 구별하여 비교)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드

: equalsIgnoreCase()


 

 

 

 

equalsIgnoreCase() :문자열 비교(대소문자 구별없이 비교)

 

로그인할 때 아이디에 대하 문자열 비교 수행에 많이 이용

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 _ indexOf()


 

 

 

 

int indexOf(문자 또는 문자열)

파라미터로 전달된 문자 또는 문자열의 인덱스를 리턴한다

 

문자 또는 문자열을 앞쪽 0번 인덱스부터 탐색해서 값을 리턴한다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 :

toUpperCase()


 

 

 

toUpperCase() :모든 영문 문자열을 대문자로 변환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드

toLowerCase()


 

 

toLowerCase() :모든 영문 문자열을 소문자로 변환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


String클래스 메서드 _ startWith()


 

 

 

startWith(String):특정문자열로 시작되는지 여부를 판별

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


String클래스 메서드 _endsWith()


 

endsWith(String):특정문자열로 시작되는지 여부를 판별

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 _trim()


 

 

trim( ) :문자열 앞 뒤 공백을 제거한다.

***문자열 사이(가운데) 공백은 유지된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 _substring()


 

 

 

substring( ) : 부분 문자열 추출

substring(int beginIndex, int endIndex)

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드 _concat()


 

 

concat( ) :문자열 결합

 

연결연산자(+)를 사용한 결합보다 연산속도가 빠르다

문자열 결합 연산을 매우 많이 중첩될 경우 연결연산자보다 concat()연산자를 쓴다

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드

split(String regex)


 

 

split(String regex)문자열 분리

 

 

 

파라미터에 전달되는 구분자(분리자,Delimeter)를 기준으로 문자열을 분리하여 분리된

문자열을 String[]타입으로 리턴함

이때 사용되는 구분자(분리자)는 정규표현식을 기초로 하는 문자열 사용

 

 

 

문자열을       /을 기준으로 앞 뒤 문자열들을 분리

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스 메서드

char charAt(int) 활용


 

 

 

 

char charAt(int) : int형 인덱스에 해당하는 위치의 문자 1개 리턴

 

 

 

 

 

 

 

 


[ charAt( ) 메서드 활용 ]

 

String jumin = "901010-5333333";

 

 

문자열 jumin 에 저장된 주민번호의 뒷자리 첫번째 숫자(char 타입 문자 1개)를 추출하여

'1' 또는 '3'일 때 "남성!" 출력하고, '2' 또는 '4'일 때 "여성!" 출력

 

 

 

 

jumin.charAt( ) 결과를 char 타입 변수에 저장하면 반복되는 추출을 줄일 수 있음

char genderNumber = jumin.charAt(7);

if(genderNumber == '1' || genderNumber == '3') {

System.out.println("남성!");

} else if(genderNumber == '2' || genderNumber == '4') {

System.out.println("여성!");

} else {

System.out.println("기타!");

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


[자바] String클래스:

replace( )메서드 활용


 

 

 

replace(원본문자 또는 문자열, 바꿀 문자 또는 문자열): 문자또는 문자열로 치환

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


전화번호 가운데 숫자를 4자리 마스킹 처리를 어떻게 할까?

 

 

 

 

 

 

단, 전화번호 가운데 숫자는 3자리 또는 4자리이다

 

 

 

 

 

 

 

 

 

 

 


 

ㅣ읽느라 수고 많으셨어요~ㅣ

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 


 

 

 

 

부족한 글을 읽어주셔서 감사드립니다

아직 부족한게 많으니

틀린 곳이 있다면

조언의 말씀 꼭 부탁드립니다!!!!

 

 

 

 

 

 

 

 

 


 

 

반응형

관련글 더보기