代码之家  ›  专栏  ›  技术社区  ›  BUY

从char数组中获取char的索引

  •  1
  • BUY  · 技术社区  · 7 年前

    你好,我需要从一个char数组中获取一个char的索引(不使用string)。是的,我知道在有弦的情况下做这件事是不合理的,但我需要知道怎么做。所以,如果你能表示理解,我将不胜感激。

    我的char数组保存:

    " ABCDEF"
    

    (开头有一个空格)。

    当我尝试这个:(我已经导入了java.

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

    它返回16,因为:

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

    打印[,a,b,c,d,e,f],这意味着返回的字符串(在中搜索索引)是。我需要在“abcdef”上搜索索引有人能帮忙吗?

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Andy Turner    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);