새소식

Programming/Java

[Java] String 클래스의 메서드

 

 

String에 대해서

 

String은 Java에서 제공하는 문자열을 위한 클래스로, 문자열을 저장하고 다루는데 필요한 메서드를 제공한다.

문자열을 만드는 방법은 두가지로, 문자열 리터럴을 지정하는 것과 생성자를 이용하는 것이 있다.

 

String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
String str4 = new String("hello");

 

 

str1과 str2는 문자열 리터럴 "hello"의 주소를 저장하지만, str3과 str4는 각각 새로운 String 인스턴스를 생성한다.

따라서 이 경우 문자열을 비교해보면 다음과 같은 결과가 나온다.

 

str1 == str2 // true
str1.equals(str2) // true

str3 == str4 // false
str3.equals(str4) // true

 

 

문자열의 비교와 관련한 내용은 예전 글에서 언급한 적이 있다.

https://hyunrian.tistory.com/4

 

Java에서 객체 값 비교하기: == vs equals()

개요 자바에서 `==`(등가비교 연산자)와 `equals()`는 두 객체의 값이 같은지 비교할 때 사용하며 비교 결과를 boolean 타입으로 반환한다. 둘은 비슷해 보이지만 반대의 결과가 나오기도 하기 때문에

hyunrian.tistory.com

 

 

기본적으로 변수를 선언할 때는 `int num = 0;`과 같이 각 타입의 기본값으로 초기화를 하지만

String은 null보다 빈 문자열로 초기화하는 것이 좋다.

String str = "";

 

 

 

지금까지 String에 대한 내용을 간략히 알아보았는데, 이번 글에서는 String 클래스의 몇가지 메서드를 살펴보려고 한다.

 

 

 

charAt()

 

`char charAt(int index)` : 특정 위치에 있는 문자 반환(index는 0부터 시작)

String s = "hello";
s.charAt(1); // 'e'

 

 

 

contains()

 

`boolean contains(CharSequence s)` : 문자열의 포함 여부 확인

String s = "hello";
s.contains("lo"); // true

 

 

 

endsWith()

 

`boolean endsWith(String suffix)` : 특정 문자열로 끝나는지 확인

String userImage = "profile.png";
userImage.endsWith("png"); // true

 

 

 

indexOf()

 

`int indexOf(int ch)`

  • 대상 문자열에서 특정 문자의 위치(index) 반환
  • 해당 문자가 존재하지 않으면 -1 반환
  • 중복되는 문자의 경우 가장 앞에 있는 위치 반환
  • 공백도 index에 포함
String s = "Birthday Gift"; // s.length() == 13
s.indexOf('b'); // -1
s.indexOf('G'); // 9
s.indexOf('i'); // 1

 

 

`int indexOf(String str)`

  • 대상 문자열에서 특정 문자열의 시작 위치 반환
  • 해당 문자열이 존재하지 않으면 -1 반환
String s = "Birthday Gift";
s.indexOf("day"); // 5

 

 

`int indexOf(int ch, int fromIndex)`

  • 대상 문자열에서 특정 문자(ch)의 위치를 지정된 위치(fromIndex)부터 확인하여 반환
  • 해당 문자가 존재하지 않으면 -1 반환
String s = "Birthday Gift";
s.indexOf('i', 3); // 10

 

 

 

length()

 

`int length()` : 문자열의 전체 길이 반환(공백 포함)

String s = "Hello World";
s.length(); // 11

 

 

 

replace()

 

`String replace(char oldChar, char newChar)`

  • 대상 문자열에서 특정 문자를 새로운 문자로 바꾸어 반환
  • 특정 문자가 여러개일 경우 모두 변환
String s = "abbc";
s.replace('b', 'q'); // "aqqc"

 

 

`String replace(CharSequence target, CharSequence replacement)`

  • 대상 문자열에서 특정 문자열을 새로운 문자열로 바꾸어 반환
  • 특정 문자열이 여러개일 경우 모두 변환
String s = "merry merry christmas";
s.replace("merry", "MERRY"); // "MERRY MERRY christmas"

 

 

 

trim()

 

`String trim()` : 문자열의 앞 뒤 공백 제거

String s = "     [Hello World]  ";
s.trim(); // "[Hello World]"

 

 

 

Contents

Copied URL!

Liked this Posting!