c23 [Java] 자바의 문자열 다루기
본문 바로가기
[Java]

[Java] 자바의 문자열 다루기

by Jarvis2304 2023. 1. 5.

 

 
 



▶ String 클래스

● String - java.lang.String

- String 클래스는 하나의 스트링만 표현

- 스트링 리터럴은 자바 컴파일러에 의해 모두 String 객체로 처리

 

 

● String 생성자

 

▷ 스트링 리터럴과 new String()

- 스트링 리터럴과 new String()으로 생성된 스트링 객체는 서로 다르게 관리함

 

● 스트링 생성

- 단순 리터럴로 생성, String s = "Hello" (JVM이 리터럴 관리, 응용프로그램 내에서 동일한 리터럴은 공유됨)

- String 객체로 생성, String t = String("Hello"); (힙에 String 객체 생성, 힙 메모리에서 공유하지않고 모두 독립적으로 생성)

그림1

 

▷ 스트링 객체는 수정 불가

- 리터럴이든 new String()으로 생성한 스트링 객체는 수정불가

- 한번 만들어진 스트링은 수정이 불가능하기 때문에 (그림1)에서 스트링이 공유되어도 문제발생하지 않음

 

		String a = "처음 문자열";
		String b = "처음 문자열";
                //a와 b는 자바 가상 기계의 스트링리터럴 테이블에 문자열을 공유하고있음
		
		a = "change"; // a가 변경되어도, b스트링은 처음 문자열 그대로 가지고 있음

 

 

● 문자열 s를 변경하려면 다음과 같이 해야함

 s = s.concat("Java"); //s는 새로 리턴된 "HelloJava"를 가리킴

 

 

 

● 두 스트링을 비교할 때 반드시 equals()를 사용해야햐 함

- equals()는 내용을 비교하기 때문에

 

 



▶ String 주요 메소드

 

 

 

 



 문자열 비교

● int compareTo(String anotherString)

- 문자열이 같으면 0 리턴

- 이 문자열이 anotherString 보다 사전에 먼저 나오면 음수 리턴

- 이 문자열이 anotherString 보다 사전에 나중에 나오면 양수 리턴

- 비교 연산자 ==는 문자열 비교에는 사용할 수 없음

 

 

 



 문자열 연결

 '+' 연산자로 문자열 연결

- '+' 연산의 피연산자에 문자열이 있는 경우

- '+' 연산에 객체가 포함되어 있는 경우 (객체.toString()을 호출하여 객체를 문자열로 변환한 후 문자열 연결)

- 기본 타입 값은 문자열로 변환된 후에 연결

 

● String concat(String str)를 이용한 문자열 연결

 

 

 

● concat()은 새로운 문자열을 생성

- 기존 String 객체에 연결되지 않고 새로운 스트링 객체 생성 리턴

 

 

 



▶ 문자열 내의 공백 제거, 

● String trim()

- 문자열 앞 뒤 공백 문자(tab,enter,space) 제거한 문자열 리턴

 

 

 



 문자열의 각 문자 접근

● char charAt(int index)

 

 

 

예제) String  클래스 메소드 활용

 

예제 실행 과정)

 

 

 

 

 

 



▶ StringBuffer 클래스

● java.lang.StringBuffer

- 스트링과 달리 객체 생성 후 스트링 값 변경 가능

- append와 insert 메소드를 통해 스트링 조작

- StringBuffer 객체의 크기는 스트링 길이에 따라 가변적

 

● 생성자

 

 

▶ StringBuffer 클래스 주요 메소드

 

 

 

▷ StringBuffer의 메소드 활용 예

 

 

예제) StringBuffer 클래스 메소드 활용

 

 

 

 

 

 

 

 



▶ StringTokenizer 클래스

● java.util.StringTokenizer

- 구분 문자를 기분으로 문자열 분리

- 문자열을 구분할 때 사용되는 문자를 구분 문자(delimiter)라고 함

'&'가 구분 문자

● 토큰(token)

- 구분 문자로 분리된 문자열

- String 클래스의 split() 메소드를 이용하여 동일한 구현 가능

 

▷ StringTokenizer 생정자

 

 

▷ StringTokenizer 주요 메소드

 

 

StringTokenizer 객체 생성과 문자열 분리

 

예제) StringTokenizer 클래스 메소드 활용

'[Java]' 카테고리의 다른 글

[Java] 자바 GUI  (3) 2023.11.09
[Java] 컬렉션  (2) 2023.11.03
[Java] 자바의 주요 클래스  (0) 2023.01.04
[Java] 패키지, 모듈  (1) 2023.01.03
[Java] 추상 클래스, 인터페이스  (0) 2023.01.02

댓글