您好,我需要从一个char数组中获取一个char的索引(不使用String)。是的,我知道在有String的情况下这样做是不合理的,但是我需要知道如何进行。因此,如果您能表示理解,我将不胜感激。

我的字符数组持有:

" ABCDEF"


(它的开头有一个空格)。

当我尝试这样做时:(我已经导入了java.util.Arrays;)

Arrays.toString(charArr).indexOf(charNeeded);


它返回16,因为:

System.out.println(Arrays.toString(charArr));


打印[,A,B,C,D,E,F],这意味着要返回的字符串(正在搜索索引)是那个。我需要搜索“ ABCDEF”上的索引,有人可以帮忙吗?

提前致谢。

最佳答案

如果无法将其转换为字符串并使用indexOf

int found = new String(charArr).indexOf(charNeeded)


那么您将需要使用循环:

int found = -1;
for (int i = 0; i < charArr.length; ++i) {
  if (charArr[i] == charNeeded) {
    found = i;
    break;
  }
}


或者,如果您想使用非常高级的解决方案,请使用流:

int found =
    IntStream.range(0, charArr.length)
        .filter(i -> charArr[i] == charNeeded)
        .findFirst()
        .orElse(-1);

09-28 02:26