String 클래스
indexOf() : 특정 문자나 문자열이 몇번째 인덱스에 존재하는지 반환. 없으면 -1
s2 = s1.substring(s1.lastIndexOf(".") + 1); // 파일에서 확장자만 추출
s2 = s1.replace("대한", "大韓"); // 모든 대한을 한문으로 변경. 정규식 사용불가
s2 = s1.replaceAll("대한", "大韓"); // 모든 대한을 한문으로 변경. 정규식 사용가능
정규식 패턴
\\d : 숫자, \\s : 공백(엔터, 탭 포함), | : 또는
\\w : 영숫자 \\W : 영숫자 제외
^:시작(대괄호 밖) $:마지막 +:하나이상
^:부정(대괄호 안)
trim() : 왼쪽과 오른쪽 공백 제거
replaceAll()은 정규식 사용 가능, replace() 정규식 사용 불가능
format() : printf()와 사용 방법 유사
s = String.format("%,d", n); // 세자릿수마다 ","출력
split() : 특정 패턴으로 문자열을 분리하여 배열로 반환
ex) String[] ss = s.split(",");
getBytes() : 문자열의 각 문자에 대한 ASCII 코드 값을 배열로 반환
StringBuilder, StringBuffer
가변적인 문자열을 처리할 경우 String 보다 처리 속도가 빠르다.
StringBuilder
동시성을 지원하지 않음. StringBuffer 보다 빠름
StringBuffer
동시성 지원
가변적인 문자열을 처리하는 경우가 아니면 String 클래스를 사용한다.
가변적인 문자열 처리. 아래처럼 코딩하면 안된다.
String s = "A";
s += "B";
s += "C";
StringBuilder나 StringBuffer는 마지막에 String으로 변환하여 사용한다.
s = "자바" + ",스프링" + ",오라클";
내부적으로 StringBuilder로 처리하므로 성능이 우수
s = "자바";
s += ",스프링";
s += ",오라클";
위와 다르게 성능이 매우 안 좋다
String 클래스는 final 클래스이므로 상속 시킬 수 없다.(불변) 즉 , 하위 클래스를 가질 수 없다
StringTokenizer
문자열을 지정한 구분자로 문자열을 분리하는 클래스.
분리된 문자열을 토큰이라 부른다.
etc.
인터페이스(구현x, 설계만 되어 있는 상태)
객체 복제(객체는 다르지만 필드의 값은 같게)
'Study > 쌍용' 카테고리의 다른 글
자바 오버라이딩 & 캐스팅 (0) | 2022.07.26 |
---|---|
자바 상속 & super (0) | 2022.07.25 |
자바 기본 API 클래스(1) (0) | 2022.07.22 |
자바 객체지향(3) (0) | 2022.07.21 |
자바 객체지향(2) (0) | 2022.07.20 |