在字符串上给出特定空间

时间:2013-05-08 10:20:00

标签: c# asp.net vb.net string

我的VB.net上有来自存储过程的字符串变量,在把它放在变量之后,我想让值指定为空格。

规则就像这样

enter image description here

图像上的数字表示空格,

我已经做过这样的试验和错误:

                Dim words As String() = receiptText.Split(" ")
                Dim word As String
                Dim XMLBuild As New StringBuilder
                XMLBuild.Append(Space(9))
                For Each word In words

                    XMLBuild.Append(word)
                    XMLBuild.Append(Space(9))

                Next

但结果是

{         PLEASE         KEEP         THIS         RECEIPT         AS         VALID         PROOF         OF         PAYMENT         }

不喜欢我应该做的规则。是否有任何字符串功能我使用?

3 个答案:

答案 0 :(得分:1)

您将输入字符串拆分到每个空格,我不确定这是一个好方法,因为人名,城市地址和其他字段在单词之间有空格,但是如果您想在固定空间中格式化您的输入那么我会给你一个通用的方法,至少对你上面例子的第一行

' This is how the first line appears in the string array after the space splitting'
Dim parts = new string() {"BL", "TH", ":", "NO",  "REF.", ":", "1234567890", "R.WAHYUDIYOINO,IR"}

' This array contains the spaces reserved for each word in the string array above'
Dim spaces = new integer () {3,9,2,17,10,2,17,2,28 }

' Now loop on the strings and format them as indicated by the spaces'
' Attention, the value for space include the string itself'
Dim sb = new StringBuilder()
Dim x As INteger = 0
For each s in parts
    sb.Append(s.PadRight(spaces(x)))
    x += 1
Next
sb.AppendLine()
' To check the result (it is useful only if the output window has fixed space font)'
sb.Append("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
Console.WriteLine(sb.ToString())

答案 1 :(得分:0)

您可以使用String.Join来完成您的要求,

String.Join(Space(9), receiptText.Split(Space(1)))

答案 2 :(得分:0)

如果我理解得很清楚,你需要将自己的价值观融合在一起并具有特定的长度。使用format函数和PadLeft / PadRight即可轻松完成此操作。

首先,您将所有内容都放在格式字符串中。但每个变量都传递给填充函数。

String strFinalResult = String.Format("{0}{1}{2}", str1.PadRight(9), str2.PadRight(6), str3.PadRight(7));

PadRight函数中的数字是字符串的总长度。因此,如果你的变量是“abc”并且你调用了str.PadRight(9),那么右边会有6个空格的“abc”。

希望它有所帮助!

修改 的 我的答案是在C#中,但由于它是String对象,我很确定它在VB.NET中可用

编辑2 如果你希望你的字符串在开头和结尾都有填充,你可以使用PadRight和PadLeft。