从 char 数组获取 char 的索引
Getting Index of a char from a char array
你好,我需要从一个字符数组中获取一个字符的索引(不使用字符串)。是的,我知道在有 String 的情况下这样做是不合理的,但我需要知道如何去做。所以,如果您能表示理解,我将不胜感激。
我的字符数组包含:
" ABCDEF"
(开头有个space).
当我尝试这样做时:(我已经导入 java.util.Arrays;)
Arrays.toString(charArr).indexOf(charNeeded);
它 returns 16 因为:
System.out.println(Arrays.toString(charArr));
Prints [ , 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);
你好,我需要从一个字符数组中获取一个字符的索引(不使用字符串)。是的,我知道在有 String 的情况下这样做是不合理的,但我需要知道如何去做。所以,如果您能表示理解,我将不胜感激。
我的字符数组包含:
" ABCDEF"
(开头有个space).
当我尝试这样做时:(我已经导入 java.util.Arrays;)
Arrays.toString(charArr).indexOf(charNeeded);
它 returns 16 因为:
System.out.println(Arrays.toString(charArr));
Prints [ , 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);