在VB.NET中,当你需要在控制台显示数据或准备好打印数据时,可能需要调整列宽以显示固定长度的数据。本文介绍了使用String对象的PadLeft方法和PadRight方法扩充字符串以进行固定宽度显示。
PadLeft和PadRight方法
PadLeft和PadRight是字符串类的两个方法,可以分别使用它们在字符串的左边和右边填充空格。这两个方法多接受一个代表总长度的整型数,添加的空格数等于填充总长度减去字符串的当前长度。
注意:在完成将字符串格式化为固定宽度显示的工作时,应该使用固定宽度的字体,例如Courier等,因为固定宽度的字符占有相同的宽度。否则,填充将会无效。
程序员经常使用的另一个替代方法是使用tab字符来获得近似固定宽度显示格式。使用tabs的一个问题是,当某行长度比能够显示的长度长时,将会对tab进行扩展,这将导致各行不能很好对齐。
列表A中,我们为大家介绍了如何使用PadLeft和PadRight方法显示字符串。(为了运行该例子,我们添加了一个下拉列表ListBox1并将它的字体设置为固定宽度的字体)图1显示了运行列表A中的代码后的结果。
在本例中,我们定义了一个整型变量i和两个字符串数组:strArrSeasons和strArrWeather。每个数组赋初值为预定义好的值;然后,我们将每个数组传递给函数PadArray,并指定在字符串的左侧扩充。
- PrivateSubPadStrings()
- DimiAsInteger=0
- DimstrArrSeasons()AsString={"Winter","Spring","Summer","Fall"}
- DimstrArrWeather()AsString={"Cold","Warm","Hot","Cool"}
- PadArray(strArrSeasons,True)
- PadArray(strArrWeather,False)
- DimstrAllAsString
- Fori=0TostrArrSeasons.length–1
- ListBox1.Items.Add(strArrSeasons(i)&""&strArrWeather(i))
- Next
- EndSub
- PrivateSubPadArray(ByRefstrArray()AsString,ByValbPadLeftAsBoolean)
- DimiAsInteger=0
- DimiMaxLengthAsInteger=0
- DimstrItemAsString
- ForEachstrItemInstrArray
- IfstrItem.Length>iMaxLengthTheniMaxLength=strItem.Length
- Next
- Fori=0TostrArray.Length–1
- IfbPadLeft=TrueThen
- strArray(i)=strArray(i).PadLeft(iMaxLength)
- Else
- strArray(i)=strArray(i).PadRight(iMaxLength)
- EndIf
- Next
- EndSub