얼마 전에 자바에서 문자열을 복사하는 방법에 대해 물어보았습니다. 우리는 문자열이 불변 객체임을 알기 때문에 복사하기 위해 단순히 한 문자열을 다른 변수에 할당할 수 있습니다. 원래 문자열 값이 변경되어도 불변성 때문에 새 문자열의 값은 변경되지 않습니다.
자바 문자열 복사
다음은 이 동작을 보여주는 간단한 자바 문자열 복사 프로그램입니다.
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.valueOf()
메소드를 사용합니다.String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //과도한 사용*2
-
String.copyValueOf()
메소드를 사용합니다. 전체적으로 과도하지만 사용 가능합니다.String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //과도한 사용*2
문자열의 일부를 다른 문자열로 복사하려면 valueOf
및 copyValueOf
메소드가 유용합니다.
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy