API는 자바에서 개발자들을 위해 편리하게 이용할 수 있는 클래스를 모아놓은 것을 말한다. 이번 시간은 API의 대표적인 예인 String을 알아볼 것이다.
String은 객체 자료형이다. String은 대문자로 시작하므로 기초데이터가 아닌 객체데이터이다. 특이점은 객체데이터이지만 기초데이터처럼 사용할 수 있다는 것이다.
package com.String;
public class HowToUseString {
public static void main(String[] args) {
String str1 = "abcdef";
String str2 = "GhIjKl";
String str3 = "mnopqr";
System.out.println(str1.concat(str2)); //문자열 연결, str2를 뒤에 붙인다.
System.out.println(str1.substring(3)); //문자열 자르기, 인덱스 3번째부터 마지막까지 문자열 자르기
System.out.println(str1.length()); //str1에 길이
System.out.println(str1.toUpperCase()); //str1의 요소들을 대문자로 바꾼다.
System.out.println(str2.toLowerCase()); //str2의 요소들을 소문자로 바꾼다.
System.out.println(str3.charAt(3)); //원하는 인덱스에 문자를 추출, str3에 있는 인덱스 3번째 문자를 추출
System.out.println(str1.indexOf('c')); //원하는 문자에 인덱스를 추출, str1에 있는 c에 인덱스를 추출
String str4 = "abcdefghijk";
System.out.println(str1.equals(str4)); //두 문자열이 같은지 비교, str1과 str4를 비교하여 bool형으로 결과 반환
String str5 = " abc def ghi ";
System.out.println(str5.trim()); //문자열의 맨 앞, 맨 뒤 공백 제거
String str6 = "abcdabcdabcd";
System.out.println(str6.replace('a', 'z')); //문자열의 특정 문자를 모두 교체, 문자열의 모든 a를 z로 교체
System.out.println(str6.replaceAll("abcd", "zzzzz")); //문자열의 특정 문자열을 모두 교체, 문자열의 모든 abcd를 zzzzz로 교체
System.out.println(str6); //원래 문자열은 바뀌지 않는다.
}
}
String은 메모리를 과소비한다. String객체는 처음 초기화된 데이터에 변화가 생기면 새로운 메모리 공간에 변화된 내용을 저장한다. 이러한 이유로 StringBuffer와 StringBuilder가 등장하였다.
StringBuffer와 StringBuilder의 차이는 속도측면에 차이다. StringBuffer가 StringBuilder보다 조금 빠르다.
package com.String;
public class HowToUseString {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder("abcdefg");
System.out.println(stringBuilder);
stringBuilder.append("hijklmn"); //문자열 맨 끝에 원하는 문자열을 이어붙인다.
System.out.println(stringBuilder);
stringBuilder.insert(3, "AAA"); //원하는 위치에 문자열을 삽입
System.out.println(stringBuilder);
stringBuilder.delete(3, 5); //문자열에 원하는 위치부터 끝나는 위치까지 문자열 삭제
System.out.println(stringBuilder);
stringBuilder.deleteCharAt(10); //문자열에 원하는 위치에 있는 문자 삭제
System.out.println(stringBuilder);
System.out.println(stringBuilder); //원래 문자열은 바뀐다.
}
}
'자바' 카테고리의 다른 글
| 23. API(Random) (0) | 2019.08.07 |
|---|---|
| 22.API(Calendar) (0) | 2019.08.05 |
| 20. 패턴을 이용한 객체 지향 이해하기(인터페이스를 활용한 스트레티지) (0) | 2019.08.01 |
| 19. 패턴을 이용한 객체 지향 이해하기(스트레티지) (0) | 2019.07.31 |
| 18. 패턴을 이용한 객체 지향 이해하기(싱글톤) (0) | 2019.07.30 |