SUMMARY
Object 클래스 : java.lang 패키지에 포함 모든 클래스의 수퍼클래스(강제상속)



toString() : 객체정보를 문자열로 반환
boolean equals(Object obj) : 객체 내용이 같은지 비교 // 실제 내용을 물어보는것
vs
== 연산자: 두 개의 레퍼런스를 비교한다. // 주소를 물어보는 것
Wrapper 클래스
자바의 기본 타입을 클래스화한 8개 클래스
Wrapper객체들은 거의 유사하며 많은 메소드가 static 타입이다 = 객체 생성 없이 사용한다.
| 기본타입 | byte | short | int | long | char | float | double | boolean |
| Wrapper클래스 | Byte | Short | Integer | Long | Character | Float | Double | Boolean |
객체 생성방법 : .valueOf() 이용
(예) Integer i = Integer.valueOf(10); // 10이라는 정수 객체 생성.
.parse타입명() : 문자열을 기본데이터타입으로변환
예) int i = Integer.parseInt("123"); // 123이라는 문자를 123 정수 수로 변환
.toString() : 기본타입을 문자열로 변환
String s1 = Integer.toString(123); //정수123을 문자열"123"로 변환
박싱 / 언박싱
박싱(boxing) : 기본 타입의 값을 Wrqpper 객체로 변환
언박싱(unboxing) : Wrapper 객체에 들어 있는 기본 타입의 값을 빼내는 것
String 클래스
String - java.lang.String ... String도 클래스, 문자열 대입으로 객체 생성 가능.
스트링 클래스는 메소드를 제공해준다.
| String 생성자 | 설명 |
| String() | 빈 스트링 객체 생성 |
| String(char[] value) | char 배열에 있는 문자들을 스트링객체로 생성 |
| String(String original) | 매개변수로 주어진 문자열과 동일한 스트링 객체 생성 |
| String(StringBuffer buffer) | 매개변수로 주어진 스트링 버퍼의 문자열을 스트링 객체로 생성 |
스트링을 생성할 때,
| 1.리터럴로 생성 // JVM이 리터럴관리 | String s = "Hello"; |
| 2. String 객체로 생성 // 힙메모리에 생성 | String t = new String("HELLO"); |
이때, new로 객체로 생성하면 변경이 아예 불가하다. 유사 final이라고 생각하자.
1번으로 생성 시,
String a = "Hello";
String b = "Hello"; // 똑같은거 가리킴
String c = new String("Hello");
String d = new String("Hello"); //힙 메모리상에서 c와 d는 각각 별개의 공간에 존재함
String 비교 시, 반드시equals()를 사용한다. (equals() 내용비교 vs == 참조대상(주소)를 비교)
String 클래스의 주요 메소드
| 메소드 | 설명 |
| char charAt(int index) | index 인덱스에 있는 문자 값 리턴 |
| int codePointAt(int index) | index 인덱스에 있는 유니코드값 리턴 |
| int compareTo(String anotherString) | 두 스트링을 사전 순으로 비교, 두 스트링이 같으면 0, 현재 스트링이 anotherString보다 먼저 나오면 음수, 아니면 양수 |
| String concat(String str) | 기존 String객체에 연결되지 않고 , 현재 스트링 뒤에 str스트링을 덧붙인 새로운 스트링 리턴 (즉, 기존의 것과 저장된 주소가 다름.) |
| Boolean contains(CharSequence s) | s에 저장된 문자들을 포함하고 있다면 true 리턴 |
| int length() | 스트링의 길이(문자개수)리턴 |
| String replace(Charsequence target, Charsequence replacement) | target이 지정하는 일련의 문자들을 replacement가 지정하는 문자들로 변경한 스트링 리턴 |
| String[] split(String regex) | 정규식 regex에 일치하는 부분을 중심으로 스트링을 분리하고, 분리된 스트링들을 배열로 저장하여 리턴 |
| 단어별로나누기, 공백 등. 이후에 String tokenizer로 더 enhance된 버전이 있음 | |
| String subString(int beginIndex) | beginIndex 인덱스부터 시작하는 서브스트링 리턴 |
| String toLowerCase() | 소문자로 변경한 스트링리턴 |
| String toUpperCase() | 대문자로 변경한 스트링리턴 |
| String trim() | 스트링 앞뒤의 공백 문자들을 제거한 스트링 리턴 |
+ 연산자로 연결?
피연산자에 문자열이나 객체가 포함되어있는 경우, 객체는 객체.toString()을 호출해 문자열로 변환해 연결. 새로운스트링 객체 생성. 기본타입은 문자열로 변환하여 연결한다. => concat과 비교!
trim()
문자열 앞뒤 공백 제거, 내부 공백은 지우지않음. \t 등도 다 지워준다.
StringBuffer 클래스
가변 크기의 문자열 저장 클래스. // java.lang.StringBuffer
String 클래스와 달리 문자열 변경이 가능하다.

StringTokenizer 클래스 : 하나의 문자열을 구분 문자를 이용하여 여러 토큰(문자열)로 분리
? 토큰 ? : 구분 문자로 분리된 문자열
(예) StringTokenizer = st = newStringTokenizer(query, "&="); // 구분문자는 &와 =이다. 2개

=======
추가로 알아본 String클래스의 메소드
메소드 설명
| boolean equals(Object another) | 두 문자열이 동일한지 비교 (내용 기준) |
| boolean equalsIgnoreCase(String another) | 대소문자 무시하고 문자열 비교 |
| int indexOf(String str) | 지정한 문자열이 처음 등장하는 위치 반환 |
| int lastIndexOf(String str) | 지정한 문자열이 마지막으로 등장하는 위치 반환 |
| boolean startsWith(String prefix) | 주어진 prefix로 시작하는지 확인 |
| boolean endsWith(String suffix) | 주어진 suffix로 끝나는지 확인 |
| char[] toCharArray() | 문자열을 문자 배열로 변환 |
| String valueOf(primitive or object) | 기본형 또는 객체를 문자열로 변환 (정적 메소드) |
| String join(CharSequence delimiter, CharSequence... elements) | 여러 문자열을 delimiter로 구분하여 결합 |
| String repeat(int count) | 문자열을 count만큼 반복한 새 문자열 반환 (Java 11 이상) |
| String strip() | 문자열 앞뒤의 공백 제거 (Java 11 이상), trim보다 유니코드 처리에 강함 |
| IntStream chars() | 문자열의 각 문자를 int(유니코드) 스트림으로 반환 |
다음은 이미지에 나온 String 클래스의 메소드 중 5개 이상을 선택하여 Java에서의 활용 방법과 예시를 정리한 본문입니다.
Java String 클래스 주요 메소드 활용 정리
1. charAt(int index)
문자열에서 지정된 인덱스의 문자 하나를 반환 (index는 0부터 시작)
String str = "Hello";
char ch = str.charAt(1); // 'e'
System.out.println(ch); // 출력: e
2. compareTo(String anotherString)
두 문자열을 사전 순으로 비교합니다.
- 같으면 0,
- 현재 문자열이 먼저 나오면 음수,
- 나중이면 양수를 반환
String a = "apple";
String b = "banana";
int result = a.compareTo(b);
System.out.println(result); // 출력: 음수 (apple이 banana보다 먼저 옴)
3. contains(CharSequence s)
주어진 문자열이 포함되어 있는지를 검사한다.
String str = "Java programming is hell";
boolean hasWord = str.contains("programming");
System.out.println(hasWord); // 출력: true
4. length()
문자열의 길이(문자 수)를 반환한다.
String str = "Hello!";
int len = str.length();
System.out.println(len); // 출력: 6
5. split(String regex)
설명: 주어진 정규식 기준으로 문자열을 나누고, 결과를 배열로 반환한다.
String data = "apple,banana,grape";
String[] fruits = data.split(",");
for (String fruit : fruits) {
System.out.println(fruit);
}
// 출력:
// apple
// banana
// grape
6. trim()
설명: 문자열의 앞뒤에 있는 공백을 제거한다.
String input = " Hello Java! ";
String result = input.trim();
System.out.println(result); // 출력: "Hello Java!"
'컴퓨터공학과 > Java 1 & 2' 카테고리의 다른 글
| JAVA프로그래밍 및 실습I 과제#7예외처리 조사 및 사용하기 (0) | 2025.05.17 |
|---|---|
| [문제해결] 이클립스 패키지탐색기에서 파일이 열리는 경우 (0) | 2025.05.17 |
| chap06-Inheritance-interface (0) | 2025.05.10 |
| [문제해결] Amateras, Eclipse, 생성자 (0) | 2025.05.10 |
| [문제해결] ECLIPSE 인코딩 오류 UTF_8 (0) | 2025.05.09 |