Language/JAVA

[JAVA] 문자열(String)

IT수정 2024. 9. 3. 22:11

자바의 문자열은 String 객체로 생성된다. 다음은 두 개의 String 변수 name과 hobby를 선언하고 문자열 리터럴을 대입한 것이다. name 변수와 hobby 변수에 문자열 리터럴이 대입되면 문자열은 String 객체로 생성되고, 객체의 번지가 각각 대입된다.

String name;
name = "홍길동";
String hobby = "여행";

 

문자열 비교

자바는 문자열 리터럴이 동일하다면 String 객체를 공유하도록 설계되어 있다. 다음과 같이 name1과 name2 변수에는 동일한 String 객체의 번지가 저장된다.

String name1 = "홍길동";
String name2 = "홍길동";

 

String 변수에 문자열 리터럴을 대입하는 것이 일반적이지만, new 연산자로 직접 String 객체를 생성하고 대입할 수도 있다. new 연산자새로운 객체를 만드는 연산자객체 생성 연산자라고 한다. 이 경우 name1과 name2는 서로 다른 객체의 번지를 가지게 된다.

String name1 = new String("홍길동");
String name2 = new String("홍길동");

 

equals() 메서드

내부 문자열만을 비교할 경우 equals() 메서드를 사용한다.

boolean result = str1.equals(str2);
boolean result = !str1.equals(str2);

 

charAt() 메서드

문자열에서 특정 위치의 문자를 얻고 싶을 때 사용한다. charAt() 메서드는 매개값으로 주어진 인덱스의 문자를 리턴한다. 참고로 공백도 인덱스에 포함된다.

String subject = "자바 프로그래밍";
char charValue = subject.charAt(3); // 프

 

length() 메서드

문자열에서 문자의 개수를 얻고 싶을 때 사용한다.

String subject = "자바 프로그래밍";
int length = subject.length(); // 8

 

replace() 메서드

문자열에서 특정 문자열을 다른 문자열로 대체하고 싶을 때 사용한다. replace() 메서드는 기존 문자열은 그대로 두고 새로운 문자열을 리턴한다.

String oldStr = "자바 프로그래밍";
String newStr = oldStr.replace("자바", "JAVA"); // JAVA 프로그래밍

 

substring() 메서드

문자열에서 특정 위치의 문자열을 잘라내어 가져오고 싶을 때 사용한다.

메서드 설명
substring(int beginIndex) beginIndex 에서 끝까지 잘라내기
substring(int beginIndex, int endIndex) beginIndex 에서 endIndex 앞까지 잘라내기

 

indexOf() 메서드

문자열에서 특정 문자열의 위치를 찾고자 할 때 사용한다. 만약 주어진 문자열이 포함되어 있지 않으면 -1을 리턴한다.

String subject = "자바 프로그래밍";
int index = subject.indexOf("프로그래밍"); // 3

 

contains() 메서드

주어진 문자열이 단순히 포함되어 있는지만 조사하고 싶을 때 사용한다.

boolean result = subject.contains("프로그래밍");

 

split() 메서드

문자열이 구분자를 사용하여 여러 개의 문자열로 구성되어 있을 경우, 이를 따로 분리해서 얻고 싶을 때 사용한다.

String board = "번호,제목,내용,성명";
String[] arr = board.split(","); // ["번호", "제목", "내용", "성명"]

 

'Language > JAVA' 카테고리의 다른 글

[JAVA] 다차원 배열  (0) 2024.09.03
[JAVA] 배열(Array)  (0) 2024.09.03
[JAVA] 참조 타입  (0) 2024.09.03
[JAVA] break 문과 continue 문  (0) 2024.09.03
[JAVA] while 문  (0) 2024.09.03