StringクラスではPadLeft・PadRightによる左詰め・右詰めは行えますが、文字列の中寄せ(センタリング)を行うメソッドは用意されていません。 以下は文字列のセンタリングを行う例です。 指定された幅で文字列が中央に来るよう左右に空白を入れています。 文字数よりも幅が下回る場合はそのままにします。
文字幅を指定して文字列を中寄せ・センタリングする
Imports System
Class Sample
Shared Function Center(ByVal s As String, ByVal width As Integer) As String
Dim margin As Integer = (width - s.Length) \ 2
If margin <= 0 Then
Return s
Else
Dim padding As New String(" "c, margin)
Return String.Concat(padding, s, padding)
End If
End Function
Shared Sub Main()
Dim s As String = "foo"
Console.WriteLine("<{0}>", Center(s, 5))
Console.WriteLine("<{0}>", Center(s, 6))
Console.WriteLine("<{0}>", Center(s, 10))
Console.WriteLine("<{0}>", Center(s, 20))
Console.WriteLine("<{0}>", Center(s, 0))
End Sub
End Class
実行結果
< foo > < foo > < foo > < foo > <foo>