Content
String 클래스는 문자열을 조작할때 사용한다.
byte배열을 String 객체로 생성이 가능하다.
import java.util.Arrays;
public class ByteArrToString {
public static void main(String[] args) throws Exception {
String str = "String";
// 배열로 변환
byte[] strArr = str.getBytes();
System.out.println("strArr = " + Arrays.toString(strArr));
// 문자열 변환
String str2 = new String(strArr);
System.out.println("str2 = " + str2);
}
}
String 객체는 문자열 내부 문자열 수정이 아니라 새로운 객체를 생성한다.
public class StringBuilderEx {
public static void main(String[] args) {
String str = "java";
str += "script";
}
}
여기서 str은 javascript가 되었지만 "java"가 수정된 것이 아닌
새로운 "javascript" 라는 String객체가 생성되고
str변수가 이 객체를 참조한 것이다.
이러한 수정 작업이 잦다면 이전 객체는 계속 버려지기 때문에 효율성 측면에서 좋지 않아 StringBuilder 클래스를 사용하는 것이 좋다.
구분자를 기준으로 문자열을 분리하려면
split() 메소드를 이용하면 된다.
한 종류의 구분자가 있다면 StringTokenizer를 사용한다.
import java.util.StringTokenizer;
public class StringTokenizerEx {
public static void main(String[] args) {
String str1 = "java&c++,python";
String[] arr = str1.split("&|,");
for (String s : arr) {
System.out.println(s);
}
String str2 = "java,c++,python";
StringTokenizer st = new StringTokenizer(str2, ",");
while (st.hasMoreTokens()) {
String token = st.nextToken();
System.out.println("token = " + token);
}
}
}
I Learned