성장 일기/쌍용교육센터 / / 2022. 12. 26. 12:49

1226/문자열, 날짜 클래스

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/ssangyonng.git에 올려두었습니다.

 

문자열

  - 문자열을 다룰 수 있는 클래스들

 

* String

  - 짧은 문자열을 다룰 때. 문자열 저장소의 주소를 저장( 중복 문자열이 저장되지 않는다. )

 

* StringBuffer

  - 긴 문자열을 다룰 때 ( 메모리에 문자열을 직접 생성 => 중복 문자열이 생길 수 있음 )

    멀티쓰레드( Multi-Thread )에서 동시접근 불가( 동기화 처리o ) 속도 느림

 

* StringBuilder

  - 긴 문자열을 다룰 때( JDK1.5에서부터 지원 ) 

    ( 메모리에 문자열을 직접 생성 => 중복 문자열이 생길 수 있음 )

    멀티쓰레드(Multi-Thread)에서 동시접근 가능( 동기화 처리x ) 속도빠름

StringBuilder sb = new StringBuilder();// 기본 생성자

StringBuilder sb1 = new StrintBuilder( "안녕하세요?" );// Overload된 생성자

// 값 문자열로 붙이기
// 소스코드에서 문자열에 +를 사용하는 것보다 StringBuilder
// StringBuilder를생성하고 append로 문자열이 붙이는 코드가 더 빠르다.
int i = 2022;
sb.append(i);
boolean flag = true;
sb1.append(flag);
sb.append( "반장" );

// 값을 기존에 값 사이에 삽입 - 기존의 값이 변경된다.
sb.insert( 인덱스, 값 )
sb.insert( 4, "년" );

// 값 삭제
sb.delete( 시작인덱스, 끝인덱스+1 );

// 값 뒤집기(reverse)
sb.reverse();

 

 

문자열을 자르는 클래스들

  - StringTokenizer : java.util

  - 문자열을 특정 문자열을 기준하여 토큰(문자열의 짧은 한 마디)으로 생성하여 사용하는 클래스

  - 문자열을 가지고 있지 않고, 문자열의 제어권을 받아서 자른 후 반환하는 일

// 1. 생성
// 문자열 내 공백으로 토큰 생성
StringTokenizer stk = new StringTokenizer( "문자열" );

// 문자열 내 특정문자열 토큰 생성( 기준 문자열을 삭제 )
StringTokenizer stk = new StringTokenizer( "문자열", "기준문자열" );

// 문자열 내 특정문자열로 토큰 생성( 기준 문자열을 토큰으로 취급할 것인지 설정 )
StringTokenizer stk = new StringTokenizer( "문자열", "기준문자열", boolean );

// 2. 제공하는 일을 사용

// 토큰의 개수 
int cnt = stk.countTokens();

// 토큰이 존재하는 지?
boolean flag = stk.hasMoreTokens();

// 토큰 얻고 포인터를 옮기기
String str = stk.nextToken();

//-------------------------------------------------------------------

// 사용
StringTokenizer stk  = new StringTokenizer("안녕 자바");

// 토큰이 존재하는지 물어보고 반복시킨다.
while(stk.has.MoreTokens()){
//3. 토큰을 얻고
String token = stk.nextToken();
}

 

날짜 관련 클래스

  - Date, calender

  - java.util패키지에서 관련 클래스를 제공

 

* Date

  - 비추천 메소드와 생성자가 많다.

  - 단독으로 사용하는 것보다 SimpleDateFormat 클래스와 함께 사용한다.

  - ( 사용자가 원하는 날짜 형식을 만들 때 사용 )

 

 * SimpleDateFormat

  - 패턴을 넣어 형식클래스 생성

 SimpleDateFormat sdf = new SimpleDateFormat( "pattern" );
 
// Date클래스를 넣어서 원하는 날짜 형식을 얻는다.
날짜 = sdf.format( date 클래스객체 );

// Locale클래스를 사용하면 다른 나라의 날짜 형식을 사용할 수 있다.
SimpleDateFormat sdf = new SimpleDateFormat( "pattern", Locale.국가이름 );

 

숫자 형식

  - java.text 패키지에서 클래스 제공

  - DecimalFormat => 숫자(정수,실수)를 원하는 형식으로 만들어 제공할 때

  - JDK1.7부터는 숫자에 구분자를 사용할 수 있다. ( 구분자는 출력되지 않는다. )

int i = 1_000_000;
// 1. 생성
DecimalFormat df = new DecimalFormat( "pattern" ); 
// pattern
// # : 데이터가 있는 것까지만 출력
// 0 : 데이터가 없으면 0을 채워서 출력

// 2. 사용
df.format( 숫자 );

DecimalFormat df = new DecimalFormat("###,###,###");
df.format(2022); // 2,022


DecimalFormat df = new DecimalFormat("0,000,000");
df.format(2022); // 0,002,022

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

1228/Set, Map  (0) 2022.12.28
1227/Calendar, JCF  (0) 2022.12.27
1223/클래스 사용  (0) 2022.12.23
1222/Override, Interface  (0) 2022.12.22
1221/상속  (0) 2022.12.21
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유