从某个索引开始一个字符数组

start a char array from a certain index

我有一个名为 data 的字符数组。

我应该编写一个方法,使 return 数组成为可能,但起点是一个名为 beginIndex 的整数变量。

示例:数组包含 'A'、'B'、'C'、'D' 和 beginIndex = 2。那么它应该 return 'B' , 'C', 'D'(是的,在这种情况下,索引本身也应该包括第二个字母!)

我该怎么做?或者将其更改为字符串然后再将其更改回字符数组更明智?

您可以使用方法 Arrays.copyOfRange (Link to the Java 11 Documentation for this method)

该方法的参数为:

  1. 原数组
  2. 开始的索引,包括在内
  3. 范围的最终索引,不包括

如何使用它的示例:

char[] originalArray =  {'a', 'b', 'c', 'd'};
char[] secondArray = Arrays.copyOfRange(originalArray, 1, test.length);

在此示例中 secondArray 仅包含 'b'、'c' 和 'd'。


满足您需要的方法,其中输入等于 index-1 可能如下所示:

public static char[] arrayFromPosition(char[] array, int position) {
  return Arrays.copyOfRange(array, position-1, array.length);
}

你可以使用下面的函数,它基于 0-index

    public Character[] stripCharArrFromIndex(Character[] arr,int index){
        int arrSize = arr.length;
        Character[] strippedArr = new Character[arrSize - index];
        
        int j=0;
        for(int i=index;i<arrSize;i++){
            strippedArr[j]=arr[i];
            j++;
        }
        return strippedArr;
         
     }

我为此创建了一个方法。这是它的样子:

public static char[] charIndex(char[] chars, int beginIndex) {
    beginIndex--;
    char[] result = new char[chars.length - beginIndex];
    for(int i = 0; i < chars.length; i++) {
        if(!(i < beginIndex)) result[i - beginIndex] = chars[i];
    }
    return result;
}

使用方法如下:

char[] chars = {'a', 'b', 'c', 'd', 'e', 'f', 'g'};
System.out.println(Arrays.toString(chars));
chars = charIndex(chars, 2);
System.out.println(Arrays.toString(chars));

输出将是:

[a, b, c, d, e, f, g]
[b, c, d, e, f, g]