Web develop/JAVA

[JAVA] 자바 String 클래스 종류 및 사용법

ForA 2019. 4. 25. 17:22
728x90

String Convert

String 클래스

: 고정(길이)문자열

String s1 = "우리나라";
String s2 = "대한민국만세";
s1 = s1 + s2; // "우리나라대한민국만세"
  1. String 클래스 객체 생성
  2. 문자열 변환을 위해서 임시로 StringBuffer 클래스 객체생성
  3. append() 메소드를 호출
  4. StringBuffer 객체를 String 객체로 변환
  5. 임시로 생성된 StringBuffer 객체를 소멸(연결하기에 비효율적임)

StringBuffer 클래스

: 가변(길이) 문자열

StringBuffer s1 = new StringBuffer("우리나라");
s1.append("대한민국만세");

public static void main(String[] args) {
    StringConvertTest sct = new StringConvertTest();
    sct.convert1();
    sct.convert2();
}
  1. StringBuffer 클래스 객체 생성
  2. append() 메소드 실행(연결에 용이함)

[Java API에서 확인할 때]

  • String타입의 메소드 실행 후 결과물의 자료형타입이 byte인 메소드 검색 (getByte())
  • toCharArray / String -> char
  • Deprecated =>좋지않은 메소드. 컴파일은 되지만 추천안함

특정문자열로 시작하는지 체크

str.startsWith(String prefix) // prefix = 접두사. boolean 리턴

특정문자열로 끝나는지 체크

str.endsWith(String suffix) // boolean 리턴

특정문자열이 포함되었는지 체크

str.contains(CharSequence s) //bollean 리턴

String Tokenizer

: 문자열 데이터를 특정 구분자(delimiter)를 통해 분리(token)해주는 클래스

String tel = "010-1234-5678";
StringTokenizer st = new StringTokenizer(tel, "-");
//StringTokenizer(String 기준문자열,String delimiter구분자) 생성자
//st = ["010","1234","5678] =>토큰 데이터

while(st.hasMoreTokens()) //st에 토큰 데이터를 가지고있다면 true리턴
{
    System.out.println(st.nextToken());
}

String split

: 특정문자(매개변수)를 통해 데이터를 분리 → 결과: 문자열배열

String tel = "010-1234-5678";
String[] tel2 = tel.split(String regex)
//regex : regular expression 정규표현식

--
String[] tel2 = tel.split("-"); //tel = {"010","1234","5678};
for(int i = 0; i<tel2.length; i++) {
    System.out.printf("tel2[%d]=%s%n",i,tel2[i]);
}


}
  • String tel = "010--5678" 일 때
    StringTokenizer은 빈문자열 데이터는 없는 데이터로 치고
    split는 빈문자열 "" 도 데이터로 저장한다