자바 문자열 복사
언젠가 나는 Java에서 문자열을 복사하는 방법을 물었습니다. 불변 객체를 알고 있으므로 하나의 문자열을 다른 문자열에 할당하여 복사할 수 있습니다. 원래 문자열 값이 변경되더라도 불변성 때문에 새 문자열 값은 변경되지 않습니다.
자바 문자열 복사
다음은 이 동작을 보여주는 짧은 자바 문자열 복사 프로그램입니다.
package com.journaldev.string;
public class JavaStringCopy {
public static void main(String args[]) {
String str = "abc";
String strCopy = str;
str = "def";
System.out.println(strCopy); // prints "abc"
}
}
불변 객체에 대해 한 변수를 다른 변수에 직접 할당할 수 있습니다. String 객체에만 국한되지 않습니다. 그러나 가변 객체를 다른 변수에 복사하려면 딥 카피를 수행해야 합니다.
Java 문자열 복사 대체 방법
문자열을 복사하는 데 사용할 수 있는 함수도 거의 없습니다. 그러나 대입 연산자를 사용하여 문자열을 안전하게 복사할 수 있을 때 사용하는 것은 실용적이지 않습니다.
-
Using
String.valueOf()
methodString strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
-
Using
String.copyValueOf()
method, a total overkill but you can do it.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //overkill*2
문자열의 일부를 다른 문자열에 복사하려는 경우 valueOf
및 copyValueOf
메서드가 유용합니다.