Копирование строки Java

Как-то мне задали вопрос, как скопировать строку в Java. Как известно, String является неизменяемым объектом, поэтому мы можем просто присвоить одну строку другой для её копирования. Если значение оригинальной строки изменится, это не повлияет на значение новой строки из-за неизменяемости.

Копирование строки в Java

Вот небольшая программа на 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. Используя метод String.valueOf()

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