我正在为#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
,我不知道为什么。
答案 0 :(得分:2)
字符串在Java中是不可变的(与许多其他语言一样),因此msg.toUpperCase();
无法编辑原始字符串,因此会创建一个带有大写字符的新字符串,将其返回。
如果您希望将此返回的字符串存储在msg
中,只需将其重新分配回msg
:
msg = msg.toUpperCase();