之前有人问我如何在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