[JAVA] 문자열-기본형 변환, String메소드, Math메소드, Calendar 클래스
1. Object 클래스
- java.lang 패키지
- 모든 클래스에 강제로 상속됨.
- 모든 클래스에서 상속받아 사용할 공통 기능 구현돼있음. 최상위 클래스.
· toString()
객체를 문자열로 변환
Point a = new Point(2,3);
System.out.println(a.toString()); // 결과: Point@15db9742 (클래스명@해시코드)
public String toString() { } // 오버라이딩으로 자신만의 문자열 리턴 가능
System.out.println(p.toString());
System.out.println(p); // p.toString()으로 자동변환됨
· equals()
객체 비교
String s1 = new String("java");
String s2 = new String("java");
if(s1.equals(s2)) System.out.println("same");
2. Wrapper 클래스
- java.lang 패키지
- 기본타입(int,char,float...)의 값을 객체로 만들어
[ valueOf(x) ]
정수 x를 담은 Integer 객체 리턴
Integer i = Integer.valueOf(1);
[문자열 → 기본타입 변환]
· parse 이용
int i = Integer.parseInt("123"); // 문자열->정수형
boolean b = Boolean.parseBoolean("true"); // 문자열->불린형
[기본타입 → 문자열 변환]
· toString(x) 이용
String s1 = Integer.toString(123); // 정수형->문자열
String s2 = Boolean.toString(true); // 불린형->문자열
· String.valueOf(x) 이용
String s1 = String.valueOf(123); // 정수형->문자열
String s2 = String.valueOf(true); // 불린형->문자열
* toString() : null 값을 변환시 NullPointerException 발생
* String.valueOf() : null 값을 변환시 "null" 문자열 출력
3.String 클래스
- java.lang 패키지
- 문자열 나타냄
- 스트링'객체'는 수정 불가
[문자열 비교]
· compareTo(x) : 사전순 비교. 같으면 0, 현재 문자열이 먼저이면 음수, 뒤에 나오면 양수 리턴
· equals(x) : 같은지만 비교
· equalsignoreCase(x) : 대소문자 구분없이 같은지 비교
"Java".compareTo("C") // Java가 C보다 뒷순위이므로 양수
[문자열 연결]
· concat(x)
"Hello ".concat("World!") // Hello World!
· +연산자
System.out.println("Hello " + "World!" + 3); // Hello World!3
[공백제거]
· trim() : 문자열 앞뒤 공백 제거
" a b cd ".trim(); // "a b cd" (탭문자도 제거)
[특정 위치의 문자]
· charAt(x) : 특정위치에 있는 문자 반환
"abc".charAt(1) // 'b'
[문자열 포함여부]
· contains(x) : 지정 문자열을 포함하고 있으면 true리턴
"abc".contains("bc"); // true
[문자열 치환]
· replace(기존문자, 바꿀문자)
String s = "안녕하세요 안녕 안녕하십니까";
s.replace("안녕", "공부"); // "공부하세요 공부 공부하십니까"
[문자열 자르기]
· split(x) : 지정 문자로 문자열을 분리해 배열에 저장
String s = "사과/배/귤";
String [] arr = s.split('/'); // ["사과", "배", "귤"]
[서브스트링(문자열자르기)]
· substring(시작위치) : 시작위치~끝까지 자름
· substring(시작위치, 끝위치) : 시작위치~끝위치 전 위치까지 자름
String s = "abcde";
s.substring(2); // "cde"
s.substring(1,3); // "bc"
[대소문자 변경]
· toLowerCase() : 소문자로
· toUpperCase() : 대문자로
"ABC".toLowerCase() // "abc"
"abc".toUpperCase() // "ABC"
4. StringBuffer 클래스
- java.lang 패키지
- 문자열 수정 가능.
- 문자열 크기 늘어나면 버퍼크기 자동조절. 가변 버퍼 가짐.
StringBuffer sb = new StringBuffer("abc");
[문자열 추가]
· append(x) : x 스트링을 스트링버퍼에 덧붙임
sb.append("def"); // "abcdef"
[문자열 뒤집기]
· reverse() : 문자 순서 반대로 뒤집기
sb.reverse(); // "cba"
[문자열 삭제, 삽입]
· delete(시작위치, 끝위치) : 시작위치~끝위치 앞까지 문자열 삭제
· insert(위치, 문자열) : 문자열을 지정위치에 삽입
sb.delete(0,2); // "c"
sb.insert(1,"안녕"); // "a안녕bc"
5. Math 클래스
- java.lang 패키지
- static타입이므로 클래스이름으로 바로 사용. ex) Math.PI
[난수 발생]
· random() : 0.0 <= x < 1.0 인 임이의 실수 리턴
int n = (int)(Math.random()*100 + 1); // 1~100 사이의 랜덤 정수
java.util.Random 클래스 활용:
import java.util.*;
Random r = new Random();
int n = r.nextInt(); // 자바 정수 범위의 난수 발생(음,양,0 포함)
int m = r.nextInt(100); // 0~99사이 정수 난수 발생
[기타 math 메소드]
· abs(x) : 절댓값
· ceil(x) : 올림
· floor(x) : 내림
· max(x,y) : 두 수 중 큰 수 리턴
· min(x,y) : 두 수 중 작은 수 리턴
· round(x) : 반올림
* 앞에 Math. <-붙여줘야 함.
6. Calendar 클래스
- java.util 패키지
- 년,월,일,요일,시간,분,초,밀리초 정보 저장
- 추상클래스임.
[캘린더 객체 생성]
getInstance() 메소드 이용.
Calendar now = Calendar.getInstance(); // 캘린더 객체 생성
[get(), set() 메소드]
· get() : 날짜와 시간 알아내는 메소드
· set() : Calendar 객체에 날짜와 시간 설정하는 메소드
int year = now.get(Calendar.YEAR); // 현재 년도 받아옴
now.set(Calendar.YEAR, year); // 캘린더 객체의 년도를 year로 설정
[Calendar 기타 속성]
· YEAR : 년도
· MONTH : 달(0~11)
· HOUR : 시간(0~11)
· HOUR_OF_DAY : 24시 기준 시간
· SECOND : 초
· DAY_OF_MONTH : 현재 월의 날짜
· DAY_OF_WEEK : 현재 요일
· AM_PM : 오전 오후 구분
· MINUTE : 분
· MILLISECOND : 밀리
* 앞에 Calendar. <-붙여줘야 함.
명품 JAVA Programming 참고