从字符数组中获取一个字符的索引

3

你好,我需要从字符数组中获取一个字符的索引(不使用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”中搜索索引,有人能帮忙吗?

提前感谢。


1
可能是Java的Array indexOf在哪里?的重复问题。 - Logan
使用Arrays.toString(charArr).indexOf(charNeeded);的地方,改用new String(charArr).indexOf(charNeeded); - Ashwin K Kumar
1个回答

7

如果无法将其转换为字符串并使用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);

谢谢您的理解和友善回答,我认为这会起作用。 - BUY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接