不久前有人问我如何在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字符串复制的替代方法
还有一些函数可以用来复制字符串。然而,当你可以安全地使用赋值运算符复制字符串时,使用它们并不切实际。
-
使用
String.valueOf()
方法String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //overkill*2
-
使用
String.copyValueOf()
方法,这是一个完全不必要的做法,但你可以这样做。String strCopy = String.copyValueOf(str.toCharArray()); String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //overkill*2
如果你想将部分字符串复制到另一个字符串中,那么valueOf
和copyValueOf
方法是有用的。
Source:
https://www.digitalocean.com/community/tutorials/java-string-copy