我有一个算法问题: 有4个文本串应该放在由分隔符(即|)划分的一行中。整条线的宽度是已知的(即500px)。每个字符串包含不同长度的单词。我想放置第一个n字(n取决于每个字的长度):
我想获得大约等于长度的4个字符串。如果其中一个字符串小于其他字符串则必须更长。即:
一个|四五...... |六十九|一百。
初始字符串的数量可以更少。在这种情况下,每个字符串的单词数必须更大。 即:
将是:
四五六|一百一十六。
是否可以使用CSS执行此操作,或者我应该使用Java后端的AffineTransform?我尝试使用这种方法,但需要大量的资源和时间。
答案 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代码。