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