Java字符串复制
前段时间,有人问我如何在Java中复制字符串。我们知道字符串是不可变对象,所以我们可以通过将一个字符串赋值给另一个字符串来复制它。如果原始字符串的值发生变化,由于不可变性,新字符串的值不会改变。
Java字符串复制
以下是一个简短的Java字符串复制程序,以展示这种行为。
package com.Olivia.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字符串复制的替代方法
可以使用一些功能来复制字符串,但是当你可以使用赋值运算符安全地复制字符串时,使用这些功能是不实际的。
-
- 利用String.valueOf()方法
-
- String strCopy = String.valueOf(str);
String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); // 过于复杂两倍
利用String.copyValueOf()方法,完全过度使用但是可行
String strCopy = String.copyValueOf(str.toCharArray());
String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); // 过于复杂两倍
如果你想要将字符串的一部分复制到另一个字符串中,那么valueOf和copyValueOf方法非常有用。