如何以编程方式找出一个字符串可以容纳多少“标签”?

时间:2012-09-27 15:15:58

标签: java alignment

假设我有一个Java String。

"abcdefghijklmnopqrstuvwxyz0123456789...."

有没有办法找出这个“适合”的标签数量?所以,例如,

如果我打印

"\t\t\t\t\t..." 

标签的视觉长度会在什么时候超过字符串?或者换句话说,如何找出标签空间的长度?

3 个答案:

答案 0 :(得分:1)

假设您使用的是标准1制表符= 4个空格。

String myString = "abcdefghijklmnopqrstuvwxyz0123456789....";

//I'm not sure what you want to do with the extra characters, 
//Just replace round by floor, or ceil if you'd like...
//If you want to floor, then just do: int nbOfVisualTabs = myString.length()/4
int nbOfVisualTabs = Math.round( (double)myString.length()/4.0 ); 

答案 1 :(得分:0)

String.length()将为您提供字符串中的字符数,您需要将其除以标签宽度,即通常 4或8.由于标签宽度通常是用户可配置的,这不是一个很好的方法。

如果要以固定宽度字体显示,则可以选择打印适当数量的空格字符。如果显示器可以是比例字体,则需要提出更复杂的内容来对齐元素。

答案 2 :(得分:0)

标签中的“字符”数量各不相同,因此您无法静态执行此操作。我能想到的唯一方法是实际添加它们,然后测试字符串以查看它是否更长。类似的东西:

while(whateverEventuallyContainsYourString.VisualWidth < yourOtherStringsContainer.VisualWidth) 
{   //Obviously that property doesn't really exist, you'd have to figure something out there.
    myString += "\t";
}

但是如果不知道你在做什么背景,我甚至不知道如果没有设置更多的脚手架,这是否可行。