Java 字符串复制
前段时间有人问我如何在 Java 中复制字符串。我们知道字符串是不可变的对象,所以我们可以将一个字符串分配给另一个字符串进行复制。如果原始字符串值发生变化,由于不可变性,它不会改变新字符串的值。
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"
}
}
请注意,对于任何不可变对象,我们可以将一个变量直接赋值给另一个变量。这不仅限于 String 对象。但是,如果您想将可变对象复制到另一个变量,则应该执行深层复制。
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
方法很有用。