有人可以向我解释为什么结果是 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] 是什么意思呢?
有人可以向我解释为什么结果是 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] 是什么意思呢?
在 Java 中,字符串和数组是0-indexed。这意味着第一个元素的索引为 0,第二个元素的索引为 1,依此类推...
所以s[3]
意味着其中的第四个元素s
是D
。表达式b.indexOf("D")
是 6,因为它是 inD
的第七个字母ABRACADABRA
,所以它在索引 6 处。
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。
i 是数组索引。在数组中,索引总是从 0 开始。这意味着如果你想在第一个位置获取数据,你需要做 s[0] ,这会给你 'A' 。
它总是 - 1 从您想要获得的实际位置。