개념 정리/Java

[JAVA] 문자열-기본형 변환, String메소드, Math메소드, Calendar 클래스

ChamOx 2023. 10. 19. 22:10

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 참고