【问题标题】:Fontmetrics stringwidth vs string lengthFontmetrics 字符串宽度与字符串长度
【发布时间】:2015-12-29 17:15:15
【问题描述】:

我有一个问题,我需要在字符串宽度 256 处测试字符。但是,当我进行 charAt(index) 测试时,我得到一个 indexoutofbounds 异常,因为 256(缓冲图像宽度)实际上比字符串长。长度。我的问题是,一旦我达到 256 的字符串宽度,我该如何测试那个宽度的字符?

【问题讨论】:

    标签: java string bufferedimage charat fontmetrics


    【解决方案1】:

    Java 与所有“C 类”语言一样,使用zero-based indexing,即数组(或集合等)的第一个元素的索引为0,第二个元素的索引为1,等等

    要访问第 256 个字符,请使用 charAt(255)。

    【讨论】:

    • 感谢您的回复,但这不是我的问题。我正在测试的字符串只有 160 个字符长。但是,fontmetrics stringWidth 是 650。我需要在空格字符处以 256 的增量包装字符串。我不知道谁将字符串宽度转换为字符串长度才能使用 charAt。
    • @Mike 你到底想做什么?是否只是“在空格字符处以 256 的增量包装字符串”?如果是这样,你是什么意思“在空间字符”?这是否意味着“在空格处拆分字符串,使每个部分尽可能大而不超过 256 个字符”?请澄清
    【解决方案2】:

    您需要对字符串中的所有字符使用 charWidth() 方法才能知道哪个字符出现在宽度 256 处。

    “我需要在空格字符处以 256 的增量包装字符串”——这是什么意思?您总是可以将其渲染到屏幕外缓冲区并使用 drawImage() 将其渲染为 256 像素宽的块。

    【讨论】:

    • 我有一个宽度为 256 的缓冲图像。我正在将文本覆盖到该图像上。我需要容纳超过缓冲图像宽度的字符串。因此,我想在图像的每个最大宽度处迭代包装它的字符串。即 256
    猜你喜欢
    • 2017-08-19
    • 2017-06-13
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2012-11-06
    • 2017-10-11
    相关资源
    最近更新 更多