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