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();
반응형
'JAVA & Spring' 카테고리의 다른 글
[JAVA] 람다식과 스트림 Stream() (0) | 2023.05.25 |
---|---|
[JAVA] 파일 입출력 (2) | 2023.05.19 |
[Java] StringTokenizer (0) | 2023.05.04 |
[Java] Optional<T> 클래스 (0) | 2023.05.03 |
[JAVA] Object 클래스_toString() 메서드 (0) | 2023.02.05 |