假设我有一个数组 x。
char[] x = new char[10]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
我想访问索引越界的数组。
例如:
索引-->值
-2 --> 我
-1 --> j
0 --> 一个
1 --> 乙
9 --> j
10 --> 一个
11 --> 乙
16 --> 克
19 --> j
20 --> 一个
最佳答案
您可以使用取模运算符,例如:
int index = 20;
int position = ((index % x.length) + 10) % x.length;
char val = x[position];
我不知道您为什么认为需要在此处使用循环,或者这是否是您的某些要求。使用 %
可能是最简单的方法。
如果您需要使用循环,请考虑以下内容:
int i = 0;
int index = 20;
while (index > 0) {
i++;
if (i == x.length) i = 0;
--index;
}
char val = x[i];
也就是说,我们可以根据给定的输入索引(可能会超出数组的边界)旋转数组的边界。当我们到达终点时,我们将运行索引重新设置为起点。
关于 java |移出边界索引,直到它在边界内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53717844/