Java |将索引移出边界,直到它进入边界
假设我有一个数组xJava |将索引移出边界,直到它进入边界,java,Java,假设我有一个数组x char[] x = new char[10]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}; 我想使用超出范围的索引访问数组。 例如: 索引-->值 -2-->i -1-->j 0-->a 1-->b 9-->j 10-->a 11-->b 16-->g 19-->j 20-->a您可以使用模数运算符,例如: int index = 20; int position = ((index % x.length) + 1
char[] x = new char[10]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
我想使用超出范围的索引访问数组。
例如:
索引-->值 -2-->i
-1-->j
0-->a
1-->b
9-->j
10-->a
11-->b
16-->g
19-->j
20-->a
您可以使用模数运算符,例如:
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];
也就是说,我们可以根据给定的输入索引(可能超过数组的边界)在数组的边界上旋转。当我们到达终点时,我们再次将运行索引重置为起点。LOL我如何使用for循环实现这一点?你认为他真的想使用循环吗?负数呢?我应该指定,让我更新问题。您没有使用
for
循环:)您的代码将更简单。@我编辑了我的问题以涵盖负索引的情况。char
是无符号的
,因此您不能为其分配负数,Java语言中不允许使用负索引