gpt4 book ai didi

java - Java 中的二维数组,按字符索引

转载 作者:行者123 更新时间:2023-12-02 00:45:22 25 4
gpt4 key购买 nike

除非我弄错了,否则在 Java 中使用字符值索引数组是合法的,因为它们相当于 8 位数字。但是,以下代码为我生成错误消息:

int[][] myArray = new int[256][256];
myArray['%']['^'] = 25;

有办法实现这个功能吗?

编辑:哇,我真的没有很好地复制代码。

最佳答案

这并不违法,因为在 Java(和其他语言)中,这种情况下的 char 将被转换为 int。如(int)'%'

如果您不知道它是什么类型的 char 值,这样的操作会更安全。

int[][] myArray = new int[Character.MAX_VALUE][Character.MAX_VALUE];
myArray['%']['^'] = 24;

它会起作用,因为 Java 会将其转换为:

myArray[37][94] = 24;

确保放置 max value char(已经完成)基本上是“?”翻译为 65535。或者您将得到 ArrayOutOfBoundsException

如果您知道范围,您仍然可以使用 256。只需确保在输入 >=0 且 < 256 的位置进行正确的边界检查即可。

public int getItem(int x, int y) {
if ((x < 0 && x > 255) || (y < 0 && y > 255)) {
return -1; // Or you can throw an exception such as InvalidParameterException
}
return myArray[x, y];
}

错误边界检查对此起着重要作用。

我会重新考虑你想要做什么,这样的事情是不可读的,你想要实现什么目标?也许您可以使用不同的 collections

编辑

自从您更改代码以来,更改了类型。

关于java - Java 中的二维数组,按字符索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5125189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com