StringBuffer
문자열 임시 저장소. 문자열 내의 문자를 변경하거나 문장을 추가/삭제 등의 작업을 효율성 높이는 보조 객체
1) append(str) : 버퍼에 새 문자열을 추가(뒤에 붙임)
2) capacity() : 용량. 버퍼의 크기
3) length() : 문자열의 길이
4) delete(st, ed) : 지정된 범위의 문자열 삭제
5) insert(idx, str) : 지정된 위치(idx)에 문자열(str) 삽입
6) replace(st, ed, str) : 지정된 범위의 문자열을 str로 변경
7) reverse() : 문자열의 순서를 역순으로 변경
8) charAt(idx) : 지정된 위치의 문자를 가져오기
9) setCharAt(idx, char) : 지정된 위치에 '문자'를 변경
10) toString() : 완성된 임시 문자열을 문자열로 고정
생성자로 버퍼의 크기(용량)를 지정할 수 있다.
특정 문자열을 역순으로 만드는 단계
1. 문자열을 기본값으로 하는 StringBuffer 생성
2. StringBuffer에 reverse() 사용
3. reverse 한 StringBuffer의 ToStiring 메소드를 사용하여 문자열로 변환
날짜와 시간 처리
활용할 클래스
java.util 패키지 : Date, Calendar
java.text 패키지 : SimpleDateFormat
Date Class : 인스천스 생성 시점의 시스템 날짜와 시간을 초기값으로 저장하고 활용할 수 있는 클래스
SimpleDateFormat의 날짜와 시간 표기 기호
G : AD/BD 등 연호
y : 연도
M : 월
d : 일
E : 요일
a : 오전/오후
h : 시
m : 분
s : 초
S : 밀리초
k/H : 24시간 주기 시
w : week of year
W : week of month
D : day of year
F : day of week in month(1~5)
package datetime;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date today = new Date();
System.out.println(today);
System.out.println(today.getTime()); // 1970.1.1부터의 시간 값
// SimpleDateFormat 원하는 형태로 지정
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd (E)");
// 형식을 넣을 공간 만들기
String dayStr = sdf1.format(today);
System.out.println(dayStr);
SimpleDateFormat sdf2 = new SimpleDateFormat("[a] hh:mm:ss");
String timeStr = sdf2.format(today);
System.out.println(timeStr);
SimpleDateFormat sdf3 = new SimpleDateFormat("F w W D");
String str = sdf3.format(today);
System.out.println(str);
}
}
Calendar Class : 달력 클래스. Date 클래스의 보편화, Date 클래스보다 쓰기 쉽다.
Singleton 패턴을 사용하는 형태 : 인스턴스를 하나만 사용하도록 강제하는 패턴, 인스턴스를 사용하는 다른 클래스에서 new를 통해 인스턴스를 생성하지 못하게 하고, 스스로 인스턴스를 하나 생성하여 제공하는 방식.
인스턴스 생성 코스트를 줄일 수 있고, 메모리 낭비를 방지할 수 있으며, 하나의 인스턴스로 데이터를 공유할 수 있다.
작성요령
1. 생성자를 private로 작성
2. 인스턴스 저장 필드를 static으로 작성 // 자체적으로 만듦.
3. 인스턴스를 제공하는 메소드를 static으로 작성
4. 인스턴스 제공 메소드에서 인스턴스가 없을 때 인스턴스를 생성하도록 처리
package singletonpkg;
public class SingletonClass {
// 자신의 인스턴스를 저장하는 클래스 변수
private static SingletonClass instance = null;
// 생성자는 private로 선언
private SingletonClass(){
//다른 클래스에서 이 클래스의 인스턴스 생성 불가
}
// 인스턴스를 제공하는 메소드
public static SingletonClass getinstance(){
if(instance == null){ // 없을 때만 생성
instance = new SingletonClass();
}
return instance;
}
// 나머지 필드나 메소드 등은 일반 클래스와 같이 작성
private int num1;
public int getNum1() {
return num1;
}
public void setNum1(int num1) {
this.num1 = num1;
}
}
package singletonpkg;
public class SingletonUse {
public static void main(String[] args) {
// 사용불가 SingletonClass sc = new SingletonClass();
// static 메소드
SingletonClass sc = SingletonClass.getinstance();
sc.setNum1(10);
System.out.println(sc.getNum1());
// 같은 인스턴스를 사용
SingletonClass sc2 = SingletonClass.getinstance();
System.out.println(sc2.getNum1());
}
}
Calendar 날짜 상수
static int YEAR 현재 년도
static int MONTH 현재 월 (1월 - 0)
static int DATE 현재 날짜
static int WEEK_OF_YEAR 현재 년도 기준 몇째 주
static int WEEK_OF_MONTH 현재 월 기준 몇째 주
static int DAY_OF_YEAR 현재 년도 기준 몇 일
static int DAY_OF_MONTH 현재 월 기준 몇 일
static int DAY_OF_WEEK 현재 요일 (일요일 - 1, 토요일 - 7)
static int HOUR 현재 시간 (12시간)
static int HOUT_OF_DAY 현재 시간 (24시간)
static int MINUTE 현재 분
static int SECOND 현재 초
package datetime;
import java.util.Calendar;
public class MyCalendar {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println(cal);
// 연, 월, 일 구하기
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 배열 값이어서 + 1
int date = cal.get(5);
System.out.println(year + "-" + month + "-" + date);
System.out.printf("%d-%02d-%02d\n", year, month, date);
// 24시간 형식
int hour = cal.get(Calendar.HOUR_OF_DAY);
// 12시간 형식
//int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
System.out.println(hour + ":" + minute + ":" + second);
System.out.printf("%02d:%02d:%02d\n", hour, minute, second);
}
}
'공부기록' 카테고리의 다른 글
4월 27일 Java - JDBC (0) | 2023.04.27 |
---|---|
4월 25일 Java - Calendar, File (0) | 2023.04.25 |
4월 24일 Java - Collection Framework, Iterator, 기타 객체들 (0) | 2023.04.24 |
4월 21일 Java - 예외 처리2, 컬렉션 프레임워크 (0) | 2023.04.21 |
4월 20일 Java - 예외 처리 (1) | 2023.04.20 |