Java数组子字符串

时间:2011-07-06 13:53:53

标签: java arrays select instantiation

如何创建/实例化一个数组,使其等于另一个数组的子字符串,其中子字符串的大小未知:

int n; //some number derived somewhere else

String[] grp = elements[i] to elements[i+n];

4 个答案:

答案 0 :(得分:14)

使用Arrays.copyOfRange

public static <T> T[] copyOfRange(T[] original,
                                  int from,
                                  int to)
  

复制指定的范围   将指定的数组转换为新数组。该   范围的初始索引(from)必须   介于零和original.length之间,   包括的。 original[from]的值   放在初始元素中   副本(除非from == original.lengthfrom == to)。值   从后来的元素   原始数组被放入   副本中的后续元素。该   范围的最终索引(to),其中   必须大于或等于,   可能大于original.length,   在这种情况下,null放在所有   索引为的副本的元素   大于或等于   original.length - from。的长度   返回的数组将是to - from

     

得到的数组恰好是   与原始数组相同的类。

在你的情况下:

String[] grp = Arrays.copyOfRange(elements, i, i + n);

答案 1 :(得分:8)

您将使用Arrays.copyOfRange()

以下是一个例子:

String[] original = some array;
String[] grp = Arrays.copyOfRange(original, i, i + n);

Arrays类的Javadocs有很多关于该方法的信息:

答案 2 :(得分:3)

使用Arrays.copyOfRange()

String[] grp = Arrays.copyOfRange(grp, i, i+n);

顾名思义grp将是原始数组的副本而不是视图。您无法查看数组,因为您需要使用collection。一般而言,集合是数组的更强大,更灵活,更高级别的替代方案。

答案 3 :(得分:1)

要获得数组的大小,你可以

String [] grp = new String[n + 1];//inclusive

然后,您所要做的就是复制元素:

for(int x = 0;x < n + 1;x++)
{
    grp[x] = elements[i + x];//I'm assuming you have "i" defined somewhere
}