java |移出边界索引,直到它在边界内

标签 java

假设我有一个数组 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/

相关文章:

java - 尝试使用 Java (JMS) 中的选择器在 Tibco EMS 上使用持久消息时遇到问题

java - 在 Netbeans 的数据库中存储长度超过 255 的字符串

java - 套接字上的 InputStreamReader 未完全读取 POST 请求

Java - Tic Tac Toe - 为什么我的 "switch player"方法不起作用?

api - 是否有一些关于最常用的 Java API 函数的统计数据?

java - 如何将 Volley 响应发送到 firebase 数据库

java - 从 ANT 运行 junitreport 时出现 OutOfMemoryError

java - 在 Spark 上下文中创建计时器

java - 访问接口(interface)的重写变量

java - Apache CSVParser 不工作