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();
반응형