如何按像素长度剪切文本?

时间:2015-04-07 07:52:35

标签: java css

我有一个算法问题: 有4个文本串应该放在由分隔符(即|)划分的一行中。整条线的宽度是已知的(即500px)。每个字符串包含不同长度的单词。我想放置第一个n字(n取决于每个字的长度):

  1. 一个
  2. 四五
  3. 六十九
  4. 一百一十六
  5. 我想获得大约等于长度的4个字符串。如果其中一个字符串小于其他字符串则必须更长。即:

    一个|四五...... |六十九|一百。

    初始字符串的数量可以更少。在这种情况下,每个字符串的单词数必须更大。 即:

    1. 四五六
    2. 一百一十六
    3. 将是:

      四五六|一百一十六。

      是否可以使用CSS执行此操作,或者我应该使用Java后端的AffineTransform?我尝试使用这种方法,但需要大量的资源和时间。

1 个答案:

答案 0 :(得分:0)

浏览每个字符并检查是否可以添加,widthOf(char)只返回您为每个字符设置宽度所需的字符宽度并存储它们。

StringBuilder final = "";
int maxWidthPixel = 500;
int currentWidthPixel = 0;
for(int i = 0; i < text.length; i++) {
    char c = text.charAt(i);
    currentWidthPixel += widthOf(c);
    if(currentWidthPixel <= maxWidthPixel) {
        final.append(c);
    } else {
        break;
    }
}

return final.toString();

编辑:这是java代码。