Поиск по сайту:

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


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

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

Вот короткая программа копирования java String, чтобы показать это поведение.

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 
    

Если вы хотите скопировать часть строки в другую строку, вам пригодятся методы valueOf и copyValueOf.