자바 문자열 복사


언젠가 나는 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 문자열 복사 대체 방법

문자열을 복사하는 데 사용할 수 있는 함수도 거의 없습니다. 그러나 대입 연산자를 사용하여 문자열을 안전하게 복사할 수 있을 때 사용하는 것은 실용적이지 않습니다.

  1. Using String.valueOf() method

    String strCopy = String.valueOf(str);
    
    String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
    
  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 
    

문자열의 일부를 다른 문자열에 복사하려는 경우 valueOfcopyValueOf 메서드가 유용합니다.