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";
}
しかし、あなたがどのような状況で作業しているのかを知らなければ、足場をもう少し設定しなくてもそれが可能かどうかさえわかりません。
文字列の文字数は、タブ幅 (通常はString.length()
4 または 8 ) で割る必要があります。ただし、タブ幅は一般にユーザーが設定できるため、これは優れた方法ではありません。
固定幅フォントで表示する場合の 1 つのオプションは、代わりに適切な数のスペース文字を印刷することです。表示がプロポーショナル フォントである可能性がある場合は、要素を整列させるために、より洗練されたものを考え出す必要があります。