从某个索引开始一个字符数组
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)
该方法的参数为:
- 原数组
- 开始的索引,包括在内
- 范围的最终索引,不包括
如何使用它的示例:
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]
我有一个名为 data 的字符数组。
我应该编写一个方法,使 return 数组成为可能,但起点是一个名为 beginIndex 的整数变量。
示例:数组包含 'A'、'B'、'C'、'D' 和 beginIndex = 2。那么它应该 return 'B' , 'C', 'D'(是的,在这种情况下,索引本身也应该包括第二个字母!)
我该怎么做?或者将其更改为字符串然后再将其更改回字符数组更明智?
您可以使用方法 Arrays.copyOfRange
(Link to the Java 11 Documentation for this method)
该方法的参数为:
- 原数组
- 开始的索引,包括在内
- 范围的最终索引,不包括
如何使用它的示例:
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]