문자열 다루기

String : 짧은 문자열 다룰 때 사용

긴문자열을 다룰 때 사용 :

  • StringBuffer : 속도 느림.(동기화 처리 - multi-thread에서 동시접근 불가능)
  • StringBuilder : 속도 빠름.(동기화 안됨. - multi-thread에서 동시접근 가능)
    중복문자열을 저장, 연결되는 문자열

문법

1. 생성
StringBuffer sb = new StringBuffer(); //기본생성자
StringBuilder sb2 = new StringBuilder("hello");//

2. 값 붙이기 - 값은 문자열로 붙는다.
sb.append();
int i = 43;
sb2.append(i);

3. 기존 값 사이에 값 삽입
sb.insert(위치,)
sb.insert(4, "꺄륵")

4.삭제
sb.delete(시작인덱스, 끝인덱스+1)
sb.delete(10, 13)

import

다른 패키지의 클래스(인터페이스)를 사용할 때 필요한 코드
package선언과 class선언 사이에 필요한 만큼 정의한다.
같은 패키지의 다른 클래스나 java.lang패키지의 클래스들은 import없이 사용할 수 있다.

문법

* 특정 패키지의 하나의 클래스를 사용할 때.
import 패키지명.클래스명;

* 패키지 내의 모든 클래스를 import할 때
import 패키지명.*; //단, 속도가 느려질 수 있음.

import클래스느 소스코드에서 몇번이든 사용가능.
* 주의 : 패키지명이 다르고 이름이 같은 클래스는 둘 중 하나만 import 가능.

package 패키지명;
import 패키지명.클래스명;
public class 클래스명{
	import로 선언된 클래스를 사용가능.
}

full path

import 없이 다른 패키지의 클래스를 사용할 때에는 full path를 기술하여 사용.

패키지명.클래스명
java.util.Data d = new java.util.Data(); <= full path(클래스의 모든 경로 적기)


static import

다른 클래스의 static 변수나 static method를 클래스명 없이 사용할 때.
package와 class사이에 정의.

문법

* static 변수(상수)를 사용할 때
(주의 : 클래스는 다르고 상수명이 같다면 하나만 선언. 
안그러면 사용하는 코드에서 error남.)

import static 패키지명.클래스명.상수명;

* static method 사용할 때
(주의 : method기호 () 는 붙이지 않는다.)

import static 패키지명.클래스명.method명;

변수명, 상수명
method명()

package test;

import static java.lang.Interger.MAX_VALUE;
public class Test{
	Integer.MAX_VALUE로 써야하나 클래스명을 제외한 상수명으로만 사용가능
}

StringTokenizer

  • 문자열을 짧은 한마디(token)로 자를 때 사용.
  • java.util에서 제공(import를 정의하여 사용.)
  • 데이터를 가지고 있지 않고, 데이터의 제어권만 받아서 데이터를 잘라낸다.

문법

String data = "자를 대상문자열"

1. 생성
StringTonkenizer stk = new StringTokenizer(data); //공백으로 토큰 생성

StringTonkenizer stk = new StringTokenizer(data, "기준문자열"); 
StringTonkenizer stk = new StringTokenizer(data, ",~. ");
//기준문자열로 토큰 생성, 기준 문자열은 토큰에서 제외

// 토큰 보호여부를 입력할 수 있다.
(data, "기준문자열", true); (data, "기준문자열", false);


StringTonkenizer stk = new StringTokenizer(data, "기준문자열", boolean); 
//기준문자열로 토큰 생성, 기준 문자열을 토큰으로 포함할 것인지를 선택

2. 토큰의 수 : 토큰을 얻을 때마다 줄어든다.(가변적)
int cnt = stk.countTokens();

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

4. 토큰이 있다면 값(토큰)을 얻고 포인터를 다음으로 옮기는 일.
String token = stk.nextTokens();

java.util.Date

날짜 얻을 때 사용하는 클래스
비추천 method가 많은 클래스
단독으로 사용하지 않고, 주로 java.text.SimpleDateFormat 클래스와 함께 사용.
import java.util.Date를 받아서 사용.

문법

1.생성
Date d = new Date();

2. method 호출
=> 비추천 method가 많아서 생략.

SimpleDateFormat

날짜를 지정된 날짜형식으로 반환하는 일.

문법

  1. 객체생성 => 날짜를 모름
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    => Letter를 반복시켜서 사용자에게 제공하고 싶은 날짜 형식을 만듬.

    Letter
    년 y
    월 m
    일 d
    오전/오후 a
    시간

    • 12시간 h(1~12), K(0~11)
    • 24시간 H(0~23), k(1~24)
      분 m
      초 s
      요일 e
  2. method => 일
    String format = sdf.format(new Date());
    sdf 객체에서 date객체를 입력받아 현재시스템의 날짜를 원하는 날짜 정보로 변환.

클래스간에 관계를 설정하는 이유
=> 다른 클래스가 제공하는 기능을 사용하기 위해서

-is a 관계(상속관계)
: 다른 클래스가 제공하는 기능을 내 클래스에서 정의된 것 처럼 사용하기 위해.
-자식클래스만 생성하면 부모가 생성되기 때문에

-has a 관계
: 다른 클래스가 제공하는 기능을 사용하기 위해, 다른 클래스의 객체를 받아들여, 객체명으로 입력받을 클래스의 기능을 사용하기 위해.

  • 객체가 생성되고, 객체명을 계속 사용해야한다.

0개의 댓글