String 클래스 : 문자열을 표현하는 클래스
- java.lang 패키지에 포함, java.lang.String
- 스트링 생성자
생성자 | 설명 |
String() | 빈 string 객체 생성 |
String(char[] value) | char 배열에 있는 값 String 객체로 생성 |
String(String str) | 매개변수로 주어진 문자열과 같은 문자열을 String 객체로 생성 |
String(StringBuffer buffer) | 매개변수로 주어진 버퍼의 문자열을 String 객체로 생성 |
스트링 리터럴과 new String()
// 스트링 리터럴로 스트링 객체 생성
String hi1 = "hello";
// String 클래스의 생성자를 이용하여 스트링 생성
char hi2[] = {'h', 'e', 'l', 'l', 'o'};
String hi3 = new String(hi2);
String hi4 = new String("hello"); // str2와 str3은 모두 "hello" 스트링
- 리터럴로 생성 : JVM이 리터럴 관리(String Constant Pool), 응용프로그램 내에서 공유됨
- String 객체로 생성 : 힙 메모리에 String 객체 생성
String a = "Hello";
String b = "Java";
String c = "Hello";
String d = new String("Hello");
String e = new String("Java");
String f = new String("Java");
![]() |
리터럴 사용시 :
|
return (a==c);//true
return (a.equals(c));//true
return (e==f);//false
return (e.equals(f));//true
String 객체 특징
- String 객체는 수정이 불가
String s = new String("Hello");
s = s+"Human"//!!오류!! 수정 불가
- String 비교시 반드시 equals() 사용
메소드 | 설명 |
char charAt(int index) | index 인덱스에 있는 문자 값 리턴 |
int codePointAt(int index) | index 인덱스에 있는 유니코드값 리턴 |
int compareTo(String anotherStr) | 두 스트링을 사전 순으로 비교, 같으면 0, anotherStr이 먼저 나오면 음수, 자기 자신이 먼저나오면 양수 리턴 |
String concat(String str) | 현재 스트링 뒤에 str스트링을 덧붙인 새로운 스트링 리턴 |
boolean contains(CharSequence s) | s에 지정된 문자들을 포함하고 있으면 true 리턴 |
int length() | 스트링의 길이(문자개수) 리턴 |
String replace(CharSequence target, CharSequence replacement) |
target이 지정한 문자열을 replacement가 지정한 문자열로 대체한 스트링 리턴 |
String[] split(String regex) | 정규식 regex에 일치하는 부분을 중심으로 스트링 분리, 분리된 스트링들을 배열로 저장하여 리턴 |
String subString(int beginIndex) | beginIndex 인덱스부터 시작하는 서브 스트링 리턴 |
String toLowerCase() | 소문자로 변경한 스트링 리턴 |
String toUpperCase() | 대문자로 변경한 스트링 리턴 |
String trim() | 스트링 앞뒤의 공백 문자들 제거한 스트링 리턴 |
- int compareTo(String str)
- str과 자기자신이 같으면 0
- str이 먼저면 음수
- 자기 자신이 먼저면 양수
String iphone= "apple";
String galaxy = "samsung";
int res = iphone.compareTo(galaxy);//res 는 양수
- String concat(String str)
- 자기 자신에 str을 추가해서 새로운 객체 리턴
- '+' 연산자로도 연결 가능
String device = new String("iphone");
String version = new String("13");
device = device.concat(version);
//device 레퍼런스는 concat()이 리턴한 새로운 스트링 객체를 가리킴
String plus = new String("pro")
System.out.print(device+plus);//+ 연산자로도 연결 가능
- String trim()
- 문자열 앞뒤 공백 문자 제거한 문자열 리턴
String a = " iphone X ";
String b = " galaxy S22\t";
String c = a.trim(); // c = "iphone X". 문자열 중간에 있는 공백은 제거되지 않음
String d = b.trim(); // d = "galaxy S22". 스페이스와 '\t' 제거됨"
- Char charAt(int index)
- 문자열 내에 문자 접근
// "sucess super class"에 포함된 ‘s’의 개수를 세는 코드
int count = 0;
String s = "sucess super class";
for(int i=0; i<a.length(); i++) { // a.length()는 18
if(a.charAt(i) == 's')// 문자열내에 i번째 문자 접근
count++;
}
System.out.println(count); // 6 출력
'JAVA' 카테고리의 다른 글
[Java.4-7] 자바의 주요 클래스 : StringTokenizer, Math, Calendar (0) | 2022.04.19 |
---|---|
[Java.4-6] 자바의 주요 클래스 : StringBuffer 클래스 (0) | 2022.04.19 |
[Java.4-4] 자바의 주요 클래스 : Wrapper 클래스 (0) | 2022.04.19 |
[Java.4-3] 자바의 주요 클래스 : Object 클래스 (0) | 2022.04.19 |
[Java.4-2] 패키지 2 : 자바의 주요 패키지 (0) | 2022.04.19 |