1

假设我有一个 Java 字符串。

"abcdefghijklmnopqrstuvwxyz0123456789...."

有没有办法找出这可以“适合”多少个标签?所以,例如,

如果我打印

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

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

4

3 回答 3

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 ); 
于 2012-09-27T15:17:53.807 回答
0

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

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

但是在不知道你在什么环境下工作的情况下,我什至不知道如果不设置更多的脚手架这是否可能。

于 2012-09-27T15:22:11.367 回答
0

WellString.length()会给你字符串中的字符数,你需要除以制表符宽度,通常是4 或 8。由于制表符宽度通常是用户可配置的,这不是一个好方法。

如果要以固定宽度字体显示,一种选择是打印适当数量的空格字符。如果显示可以是成比例的字体,您将需要想出一些更复杂的东西来对齐元素。

于 2012-09-27T15:18:16.947 回答