【问题标题】:start a char array from a certain index从某个索引开始一个 char 数组
【发布时间】:2021-08-26 17:25:12
【问题描述】:

我有一个名为 data 的 char 数组。

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

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

我该怎么做?还是将其更改为 String 并稍后将其更改回 char 数组更明智?

【问题讨论】:

  • 有什么理由不使用 Substring?

标签: java arrays char


【解决方案1】:

可以使用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);
}

【讨论】:

    【解决方案2】:

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

    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]
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2017-10-24
        • 2019-05-25
        • 1970-01-01
        • 1970-01-01
        • 2013-07-21
        • 2017-02-21
        • 2015-10-20
        • 2020-02-03
        • 1970-01-01
        相关资源
        最近更新 更多