-5

有人可以向我解释为什么结果是 6 吗?谢谢

String[] s = { "A", "B", "C", "D" };
String b = "ABRACADABRA";
int i = s.length - 1;
System.out.print( b.indexOf( s[ i ] ) );

我知道 s 的长度是 4,所以 i = 3,但是 s[i] 是什么意思呢?

4

3 回答 3

5

在 Java 中,字符串和数组是0-indexed。这意味着第一个元素的索引为 0,第二个元素的索引为 1,依此类推...

所以s[3]意味着其中的第四个元素sD。表达式b.indexOf("D")是 6,因为它是 inD第七个字母ABRACADABRA,所以它在索引 6 处。

于 2012-12-23T04:31:49.947 回答
2

i 表示索引,所以在 s 中,你有

i|s

0|A
1|B
2|C
3|D

所以在括号中,你只是给它你想要的值的索引。所以s[3]给你D。然后你说找到你给它的值的索引,你给它值'D',所以它会寻找'D'在ABRACADABRA中的位置。所以请记住数组从 0 开始计数,所以

0|A
1|B
2|R
3|A
4|C
5|A
6|D
....

D所在的索引是6。

于 2012-12-23T04:35:09.460 回答
2

i 是数组索引。在数组中,索引总是从 0 开始。这意味着如果你想在第一个位置获取数据,你需要做 s[0] ,这会给你 'A' 。

它总是 - 1 从您想要获得的实际位置。

于 2012-12-23T04:36:04.563 回答