微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决从某个索引开始一个字符数组

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

我应该编写一个方法来返回数组,但起点是一个名为 beginIndex 的整数变量。

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

我该怎么做?还是先改成String再改回char数组比较明智?

解决方法

您可以使用方法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);
}
,

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

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','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,g]
,

你可以使用下面的函数,它基于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;
         
     }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。