Как-то мне задали вопрос, как скопировать строку в 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
Существуют также некоторые функции, которые можно использовать для копирования строки. Однако нецелесообразно использовать их, когда можно безопасно скопировать строку, используя оператор присваивания.
-
Используя метод
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