Java 如何按像素分割字符串

Java 如何按像素分割字符串,java,string,split,Java,String,Split,图片中的字符串超过570像素(我知道这一点是因为我使用了FontMetrics),尽管我查看了java文档,字符串似乎没有一种方法可以让您在字符串超过x像素时拼接字符串。字符串是Java中的对象,没有任何表示它们在屏幕上的像素处理方式的表示。没有办法使用字符串对象本身来完成您想要做的事情(除非您实现自己的方法) 您需要检查将字符串“打印”到屏幕的方法,并修改该方法,使字符串长度不超过570 px 假设您有一个打印文本的方法: text(myText, width, height); 在这里,您


图片中的字符串超过570像素(我知道这一点是因为我使用了FontMetrics),尽管我查看了java文档,字符串似乎没有一种方法可以让您在字符串超过x像素时拼接字符串。

字符串是Java中的对象,没有任何表示它们在屏幕上的像素处理方式的表示。没有办法使用字符串对象本身来完成您想要做的事情(除非您实现自己的方法)

您需要检查将字符串“打印”到屏幕的方法,并修改该方法,使字符串长度不超过570 px

假设您有一个打印文本的方法:

text(myText, width, height);

在这里,您可以将宽度设置为570。

继续剪切字符串中的最后一个字符,直到它适合为止

String initialString = "1234567890";
String firstPart = initialString;
while (metrics.stringWidth(firstPart) > MAX_WIDTH) {
    firstPart = firstPart.substring(0, firstPart.length() - 1);
}
String secondPart = initialString.substring(firstPart.length(), initialString.length());

我想你必须给自己写一个小助手的方法:P我自己在为NPC对话编写的2D游戏中这样做的,这真的不难,而且有不同的方法。这是正确的,没有“简单”的开箱即用的解决方案。但是,如果你写得更清楚你想要达到的目标,可能会有更多的提示。例如,有时可以使用带有HTML内容的
JLabel
作为格式化字符串的“渲染器”(自动换行)。是的,我需要知道如何修改它以确保它不会超过570 px,因为我需要在任何字符超过570 px之前结束字符串。好吧,让我们看看一些代码,这样可以更容易地给你一个更具体的答案。现在,我只能给你一些让你自己想到解决方案的一般答案。这是我打印消息的代码:我基本上得到了玩家用户名和消息的宽度,然后输出它(用于调试目的)。然后我把它附加到一个ArrayList中,然后我的渲染方法不断检查是否有新消息,然后用图形打印出来。谢谢你的想法,我要试试这个。如果它能工作,我会接受你的回答:)太棒了,它能工作,但是我如何才能得到下半部分,这样我就可以将它输出到第一行,没有这个,我的问题就不会得到解决。事实上,NVM,我只是差了一点,谢谢你的帮助,我接受了你的回答。再次感谢你,我要花点时间来掌握弦,因为我从来不知道子弦。