Language/Java
17. Java 문자열 및 유용한클래스
유가엘
2020. 3. 8. 01:20
lesson18_UsefulClass.zip
0.01MB
String 객체와 메모리
문자열 다루는 String 객체는 데이터 변화가 많으면 메모리에도 영향을 미쳐 성능 저하가 발생 됩니다.
예를 들면, String 안에 Hello 라는 값이 기존에 저장이 되어있는 상태에서, World 라는 글자를 추가하게 되면
Hello와의 연결을 끊고, HelloWorld라는 값을 새로 메모리에 생성됩니다.
( 기존 Hello는 GarbageCollector가 회수 전까지 메모리를 차지하고 있습니다. )
이와 같은 단점을 보완하고자 StringBuffer 와 StringBuilder가 생성 되었습니다.
아래 예시와 같이 메모리를 재 활용하고 원하는 글자를 추가 할 수 있는 기능입니다.
package lesson18_UsefulClass;
import java.util.StringTokenizer;
public class Main_string {
public static void main(String[] args) {
// String 합치기 synchronized
StringBuffer buffer = new StringBuffer("Hello");
buffer.append("Java");
buffer.append("World");
buffer.insert(buffer.length(), "!!");
String str5 = buffer.toString();
System.out.println(str5);
// Asynchronized
StringBuilder builder = new StringBuilder();
builder.append("Hello");
builder.append("Java");
builder.append("World");
builder.delete(5, 9);
String str6 = builder.toString();
System.out.println(str6);
}
}
자바 패키지의 자주사용 되는 클래스
package lesson18_UsefulClass;
import java.util.StringTokenizer;
public class Main_string {
public static void main(String[] args) {
String str = new String("원래는 String도 이렇게선언합니다");
// str이 '원'자로 시작하는지 확인합니다. => true/false
System.out.println( str.startsWith("원") );
// str이 '다'자로 끝나는지 확인합니다. true/false
System.out.println( str.endsWith("다") );
// str에서 '선언' -> '작성'으로 바꿉니다.
System.out.println( str.replace("선언", "작성") );
// str 3번째글자를 출력합니다.
System.out.println( str.charAt(2) );
System.out.println("----------------------------------");
String str2 = "안녕하세요";
// str2에 '안녕하세요'라고 써있는지 여부를 확인합니다. true/false
System.out.println( str2.equals("안녕") );
System.out.println("----------------------------------");
// String을 만드는데 형식 지정할 수 있습니다. 소수점 1자리까지
String str3 = String.format("%.1f", 123.456);
System.out.println(str3);
System.out.println("----------------------------------");
// String분리
String str4 = "20181030,1호선,서울역,12334,32442";
// ","를 기준으로 나눠서 배열에 담아 줍니다. String[]
String[] subway = str4.split(",");
System.out.println(subway[2]);
// 차례대로 처리 가능한 형태로
StringTokenizer st = new StringTokenizer(str4, ",");
while ( st.hasMoreTokens() ) {
System.out.println(st.nextToken());
}
}
}