VB.NET特定的字符串格式

use*_*089 1 .net vb.net string-formatting

我有一个字符串,让我们称之为"S",它可以是最多8位数的日志,我想将它对齐在一个字符串中,然后在一个文本文件中对齐8个空格(chr(32))

防爆.(我在示例中添加了下划线来标​​记空白.

S="1234"    should result in "____1234"
S="444444"  should result in "__444444"
S="abc"     should result in "_____abc"
Run Code Online (Sandbox Code Playgroud)

为此,我将编写以下代码

Public Function feld(ByVal S As String, Optional I As Integer = 8) As String
    Dim lenS As Integer = Strings.Len(S)
    Dim vorS As Integer = I - lenS
    Dim rez As String = ""
    For x = 1 To vorS
        rez += Strings.Chr(32)
    Next
    rez += S
    Return rez
End Function
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式来做到这一点?

Joe*_*orn 5

你让这种方式太复杂:

Public Function feld(ByVal S As String, Optional I As Integer = 8) As String
    Return S.PadLeft(I)
End Function
Run Code Online (Sandbox Code Playgroud)

人们想知道为什么你甚至需要一个新的功能,除非你想要的行为不同于PadLeft()字符串太长的情况下使用的行为......但如果是这种情况,我们需要知道你想在问题中做什么行为.