假设我有一个 Java 字符串。
"abcdefghijklmnopqrstuvwxyz0123456789...."
有没有办法找出这可以“适合”多少个标签?所以,例如,
如果我打印
"\t\t\t\t\t..."
什么时候标签的视觉长度会超过字符串?或者换句话说,如何找出制表符空间的长度?
假设您使用标准的 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 );
选项卡中的“字符”数量各不相同,因此您将无法静态执行此操作。我能想到的唯一方法是实际添加它们,然后测试字符串以查看它是否更长。就像是:
while(whateverEventuallyContainsYourString.VisualWidth < yourOtherStringsContainer.VisualWidth)
{ //Obviously that property doesn't really exist, you'd have to figure something out there.
myString += "\t";
}
但是在不知道你在什么环境下工作的情况下,我什至不知道如果不设置更多的脚手架这是否可能。
WellString.length()
会给你字符串中的字符数,你需要除以制表符宽度,通常是4 或 8。由于制表符宽度通常是用户可配置的,这不是一个好方法。
如果要以固定宽度字体显示,一种选择是打印适当数量的空格字符。如果显示可以是成比例的字体,您将需要想出一些更复杂的东西来对齐元素。