我是Java的初学者,我正在阅读Oracle教程中的Arrays。
我的问题涉及此代码:
class ArrayCopyDemo {
public static void main(String[] args) {
char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
'i', 'n', 'a', 't', 'e', 'd' };
char[] copyTo = new char[7];
System.arraycopy(copyFrom, 2, copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
具体来说,
System.out.println(new String(copyTo));
新String(copyTo)究竟做了什么,或者更确切地说为什么要使用new和String?他们在一起做什么? (我知道他们打印出“咖啡因”,但只是在一般意义上。
答案 0 :(得分:6)
JavaDoc是你的朋友:
public String(char [] value)
分配一个新的String以便它 表示当前包含的字符序列 字符数组参数。字符数组的内容是 复制;后续修改字符数组不会影响 新创建的字符串。
<强>参数:强>
value - 的初始值 串
答案 1 :(得分:2)
新String(copyTo)到底做了什么,
它创建一个新的String对象。 String类有一个Constructor,它接受一个char数组,它将char数组转换为字符串文字。
分配一个新的String,使其代表序列 当前包含在字符数组参数中的字符。该 复制字符数组的内容;随后的修改 字符数组不会影响新创建的字符串。
答案 2 :(得分:0)
它创建一个新的String
对象,其中包含您作为参数传递的char
数组定义的文本。它只是String
类中定义的另一个构造函数,请看一下:
public String(char value[]) {
this.offset = 0;
this.count = value.length;
this.value = StringValue.from(value); //returns a copy of the char array
//by using Array.copyOf
}
除了查看JavaDoc之外,深入了解String
的代码可以帮助您理解它是如何工作的。 this.value
是用于分配符合char
的{{1}}的内部数组。
答案 3 :(得分:0)
函数println
仅接受类型String
。你拥有的是char
数组。
new
关键字表示String
是类String
的构造函数(与构造新的String
对象一样)。
在Android开发者网站中,您可以获得所有构造函数的列表: http://developer.android.com/reference/java/lang/String.html
具体来说,您使用的是:
String(char[] data)