JAVA & Spring

[Java] String 클래스, 관련 메소드

HSRyuuu 2023. 4. 20. 13:15

1. String형 변수 선언

String str1 = new String("hello");//힙 메모리에 인스턴스로 생성됨
String str2 = "hello";//상수 풀(constant pool)에 있는 주소를 참조
  • 힙 메모리에 생성되는 str1은 생성 될때마다 다른 주소값을 가진다.
  • 상수풀의 문자열은 모두 같은 주소값을 가진다.
// 힙 메모리의 인스턴스로 생성
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2);//false
System.out.println(str1.equals(str2));//true
//상수 풀의 주소를 참조
String str3 = "abc";
String str4 = "abc";
System.out.println(str3 == str4);//true
System.out.println(str3.equals(str4));//true

String은 불변(immutable)

  • String 클래스는 final로 선언되어있다.
  • 한번 생성된 String은 불변하다.
  • String 두개를 연결하면 기존의 String에 연결되는것이 아니라 새로운 문자열이 생성된다.
  • 메모리 낭비가 발생한다.

2. Methods

length()

  • String의 길이를 반환
  • 배열은 arr.length 이다. 괄호 유무 차이가 있다.

charAt(int index)

  • 인덱스의 문자를 char 형으로 꺼낸다.

isEmpty()

  • 문자열이 비어있으면 true를 반환한다.

trim()

  • 문자열의 앞뒤 공백을 제거한다. ( 사이 공백 x )

toUpperCase(), toLowerCase()

  • 각각 문자열을 대문자, 소문자로 변경한다.

substring(int index1, int index2)

  • index1부터 index2 바로 앞 까지의 문자열을 뽑아낸다.

startsWith(String str) , endsWith(String str)

  • 문자열이 str로 시작하거나, 끝나면 true를 반환

indexOf(String str)

  • str이 처음으로 존재하는 index를 반환

lastIndexOf(String str)

  • str이 마지막으로 존재하는 index를 반환

replace(String str1, String str2)

  • str1을 str2로 교체한다.

concat(String str)

  • 기존 문자열 뒤에 str을 붙인다.

3. String 변환

1) String->Integer

String strData1 = "200";
int intdata1 = Integer.parseInt(strData1);

2) Integer->String

int intData2 = 150;
String strData2 = String.valueOf(intData2);    

3) Byte[ ]->String

byte[] bytes = { 73, 32, 108, 111, 118, 101, 32, 121, 111, 117 };    //아스키코드
String str = new String(bytes);

4) String -> toCharArray

String str1 = "(hello)";
char[] arr = str1.toCharArray();
반응형