String(int[],int,int)在java程序中表示什么,举个例子看看

2024-11-22 07:28:26
推荐回答(4个)
回答(1):

int[] ary ={65,66,67,68,97,97};
String str = new String(ary, 2, 3);

譬如这个就是从数组里面index为2的下标开始,拿3个元素出来,取其每个元素对应的char,然后组成一个新的字符串。
上面的例子就是拿67,68,97,他们对应的char为'C','D','a'

所以生成的字符串为CDa

明白了吧?

回答(2):

public String(int[] codePoints,
int offset,
int count)分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符。offset 参数是该子数组第一个代码点的索引,count 参数指定子数组的长度。将该子数组的内容转换为 char;后续对 int 数组的修改不会影响新创建的字符串。

参数:
codePoints - 作为 Unicode 代码点的源的数组。
offset - 初始偏移量。
count - 长度。
抛出:
IllegalArgumentException - 如果在 codePoints 中发现任何无效的 Unicode 代码点
IndexOutOfBoundsException - 如果 offset 和 count 参数索引字符超出 codePoints 数组的范围。

/**

* 分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符.

*

* @param codePoints

* @param offset

* @param count

*/

public String(int[] codePoints, int offset, int count) {

if (offset >>1.

if (offset > codePoints.length - count) {

throw new StringIndexOutOfBoundsException(offset count);

}

int expansion = 0;

int margin = 1;

char[] v = new char[count margin];

int x = offset;

int j = 0;

for (int i = 0; i int c = codePoints[x ];

if (c = v.length) {

if (expansion == 0) {

expansion = (((-margin 1) * count) >= 10;

if (expansion int newLen = Math.min(v.length expansion, count * 2);

margin = (newLen - v.length) - (count - i);

v = Arrays.copyOf(v, newLen);

}

回答(3):

String就是java里面预定义的一个类 你看String第一个字母就是大写的
像class People,class Student这些People,Student跟他都是一样的
只不过String可以直接拿来用(预定义的一个类)

回答(4):

java的api中午文档写的很清楚啊,网上那都能下载得到