字符串读取器格式的字符串

本文关键字:字符串 格式 读取 | 更新日期: 2023-09-27 17:56:19

我遵循了这个Wordpress教程,效果很好。我使用了列表视图,当我尝试格式化字符串时,它无法识别't(但可以识别'n)。它也不会识别String.Format等。

无论如何,我可以使用制表符或类似的东西格式化字符串吗?

干杯

编辑

for( i = 0; i < lstView.Items.Count;i++) 
{ 
    name = lstView.Items[i].Text; 
    state = lstView.Items[i].SubItems[1].Text; 
    country = lstView.Items[i].SubItems[2].Text; 
    line += name + "'t" + state + "'t" + country + "'n"; 
}  
StringReader reader = new StringReader(line); 

当行用于打印时,字符串将连接在一起,因此 ''t 不起作用。不过,新行的 ' 确实有效。有谁知道我可以在不使用空格的情况下格式化字符串的任何方法。

结果是这样的

名称州国家

更长的名称州国家

另一个

名字另一个州另一个国家

我希望它们排列在一列中

(如在表格中)的位置,说明另一列和国家,然后是第三列

任何建议非常感谢

字符串读取器格式的字符串

好吧,制表符丢失有点奇怪,但另一方面,如果单个字符串元素(名称、状态等)的长度不同,制表符可能会出现问题。
相反,您可以做的是使用string.Format()并使用固定的列宽。
为了获得漂亮的视觉输出,这将包括一个解析步骤来确定正确的列宽。
完成此操作后,请使用类似这样的内容来使用空格而不是制表符。

string line = string.Format("{0,-20}{1,-20}{2,-20}", "name", "state", "country");

编辑:看到你不想使用空格。
在这种情况下,您可能需要在打印算法本身中处理此问题。您仍然可以使用制表符分隔项目,然后为每行将其拆分为选项卡,每行创建一个项目(列)数组。
对于每个项目,使用具有合适 X 位置偏移的Graphics.DrawString()进行打印。

请参阅 Graphics.DrawString 的文档。