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"

	}
}

请注意,我们可以对任何不可变对象进行直接赋值。这不仅限于字符串对象。然而,如果你想将一个可变对象复制到另一个变量中,你应该进行深拷贝

Java字符串复制的其他方法

还有一些函数可以用来复制字符串。然而,当你可以安全地使用赋值运算符来复制字符串时,使用这些函数是不实际的。

  1. 使用String.valueOf()方法

    String strCopy = String.valueOf(str);
    
    String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
    
  2. 使用String.copyValueOf()方法,有點過度但你可以這麼做。

    String strCopy = String.copyValueOf(str.toCharArray());
    
    String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //overkill*2 
    

如果你想複製部分字串到另一個字串,那麼valueOfcopyValueOf方法是有用的。

Source:
https://www.digitalocean.com/community/tutorials/java-string-copy