반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Linux셋팅
- ID중복
- char[] String 형변환
- 동기화
- StringReader
- first-child
- 스레드그룸
- 상관서브쿼리
- 표현 언어
- MemoryStream
- interrupted()
- sleep()메소드
- StringWriter
- include지시자
- Linux세팅
- first-of-child
- 아이디중복
- isinterrupted()
- 리눅스셋팅
- ThreadGroup()
- 상관 서브 쿼리
- InputDialog
- include액션태그
- 리눅스세팅
- String char[] 형변환
- include 지시자
- Daemon()
- 메모리스트림
- ObjectInputStream
- interrupt()
Archives
- Today
- Total
다연이네
[days18] java.lang 패키지와 유용한 클래스, String의 다양한 메소드 본문
반응형
Class Object.getClass() : 객체 자신의 클래스 정보를 담고있는 Class 인스턴스를 반환하는 메소드
1. Class cls = v1.getClass();
2. equals 오버라이딩
3. toString 오버라이딩
4. Clone 오버라이딩 (주의: implements Cloneable 삽입 필수)
package review;
public class Review06 {
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
Class cls = v1.getClass();
System.out.println(cls.getName()); //review.Value 패키지명.클래스명
System.out.println(v1.equals(v2));
Point p1 = new Point(1,2);
System.out.println(p1.toString());
try {
Point p2 = p1.clone();
System.out.println(p2.toString());
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}
class Point implements Cloneable{
int x, y;
public Point() {}
public Point(int x, int y) {
this.x=x;
this.y=y;
}
@Override
public Point clone() throws CloneNotSupportedException {
return (Point)super.clone();
}
@Override
public String toString() {
return String.format("x=%d, y=%d", this.x, this.y);
}
}
class Value{
int value;
public Value() {}
Value(int value) {
this.value = value;
}
//equals 오버라이딩 - 값만 같으면 true
@Override
public boolean equals(Object obj) {
Value v;
if(obj instanceof Value && obj!=null) {
v=(Value)obj; //다운캐스팅
return this.value == v.value;
}
return false;
}
}
String의 다양한 메소드
1. endsWith(), startswith() 접미사/접두사 확인
String directory = "C:\\Class\\JavaClass\\JavaPro\\src\\days17\\";
System.out.println(directory.endsWith("\\")); //true
System.out.println(directory.startsWith("\\")); //false
2. valueOf() 타입들 -> String
int i = 100;
String.valueOf(i); //"100" int -> String
String.valueOf(true); //"true" boolean -> String
String.valueOf('c'); //"c" char -> String
3. join
String [] namez = {"프랭키","그레이스","솔"};
String result = String.join("/", namez);
System.out.println(result);
4. name.compareTo(anotherString) 문자열 비교
System.out.println("홍길동".compareTo("홍길동")); //0 두 문자열이 같은 경우
System.out.println("kbs".compareTo("kcs")); //-1 b와c 98 - 99, 뒤에 비교할 필요 없이 그냥 그 값 돌려
System.out.println("kbs".compareTo("kas")); //1 b와 a 98-97
System.out.println("kbs".compareTo("kxs")); //-22 b와x
5. indexOf() 문자열 속에 특정 문자열이 있는지 인덱스 값을 반환
String target = "안녕하세요. 홍길동 입니다. 반장 홍길동 입니다.";
int inx = target.indexOf("홍길동"); // 숫자 반환
System.out.println(inx);
//뒤에있는 홍길동을 찾으려면
int fromIndex = inx+1;
int idx = target.indexOf("홍길동",fromIndex);
System.out.println(idx);
6. replace(), contain()
package days18;
public class Ex06 {
public static void main(String[] args) {
String data = "hxllo world ~ hello world~";
// h-> T 변경
data = data.replace('h', 'T');
System.out.println(data);
//world -> XXX 문자열 변경
data = data.replace("world", "XXX");
System.out.println(data);
//첫번째 XXX 바뀜
data = data.replaceFirst("XXX", "엑스");
System.out.println(data);
//data 문자열 안에 "엑스" 문자열을 가지고 있니? 확인 작업
boolean a = data.contains("엑스"); // boolean형
System.out.println(a);
}
}
7. StringBuffer클래스와 StringBuilder클래스 (문자열을 추가, 삭제, 삽입 등 문자열을 변화시키는 일을 할때)
package review;
public class Review10 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("abc");
sb.append("def"); //문자열 끝에 추가
System.out.println(sb); //abcdef
char one =sb.charAt(0);
System.out.println(one); //'a'
sb.delete(3, 5); //abcdef에서 de삭제
System.out.println(sb); //abcf
sb.insert(3, "de");
System.out.println(sb); //abcdef
//StringBuffer: 동기화o
//StringBuilder: 동기화x
//속도: StringBuilder > StringBuffer
}
}
8. StringTokenizer 클래스 (==split 함수)
package days18;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Ex09 {
public static void main(String[] args) {
String data = "a,b,c,d";
StringTokenizer st = new StringTokenizer(data, ",");// 위 문자열(data)을 콤마를 구분자로 잘라서 가지고 있는 객체
while (st.hasMoreTokens()) { //잘라낸 토큰 가지고 있니? 4개 있으니까 true 3 -> 2 -> 1 -> 0(false, 와일 빠져나감)
System.out.println(st.nextToken()); // 그럼 그 안에 토큰 가져가겠다 a -> b -> c -> d
}
}
}
반응형
'Java' 카테고리의 다른 글
[days18] txt파일을 불러와 명단 출력, htm파일로 불러오기, 파일 불러와 알파벳 개수 세기 (0) | 2020.10.18 |
---|---|
[days18] 클래스 객체를 얻는 방법 (0) | 2020.10.18 |
[days17] 예외처리 (Exception handling) (0) | 2020.10.18 |
[days17] 인터페이스, 익명클래스 (0) | 2020.10.18 |
[days16] 싱글톤패턴 (0) | 2020.10.17 |
Comments