为什么我的自定义字体数组会出现ArrayIndexOutOfBoundsException?

时间:2016-01-03 21:07:55

标签: java fonts java-2d

我正在为#towerjam制作游戏,我需要渲染一些我制作的字体。这是我正在使用的代码。

fileNN

数组public static void render(String msg, Graphics g, int x, int y) { msg.toUpperCase(); char[] msgArray = msg.toCharArray(); for (char c : msgArray) { System.out.println(); g.drawImage(letters[c-65], x, y, Tile.DRAW_SIZE, Tile.DRAW_SIZE, null); x+=Tile.DRAW_SIZE; } } 是从我的spritesheet裁剪的BufferedImages数组。现在它给了我一个letters,我不知道为什么。

1 个答案:

答案 0 :(得分:2)

字符串在Java中是不可变的(与许多其他语言一样),因此msg.toUpperCase();无法编辑原始字符串,因此会创建一个带有大写字符的新字符串,将其返回

如果您希望将此返回的字符串存储在msg中,只需将其重新分配回msg

msg = msg.toUpperCase();