繁体   English   中英

StringReader格式化的字符串

[英]StringReader formatted string

我遵循了这个效果很好的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); 

当使用line进行打印时,字符串将连接在一起,因此\\ t不起作用。 新行的\\ n确实可以工作。 有谁知道我不使用空格就可以格式化字符串的任何方式。

结果是这样的

NameStateCountry

LongernameStateCountry

anotherNameAnotherStateAnotherCountry

我希望它们排列成一列(如表中所示)的位置,然后说出另一列和国家/地区,然后列出第三位

任何建议,不胜感激

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

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

编辑 :看到您不想使用空格。
在这种情况下,您可能需要在打印算法本身中进行处理。 您仍然可以使用选项卡来分隔项目,然后为每行在选项卡上将其拆分,从而每行创建一个项目(列)数组。
对于每个项目,请使用Graphics.DrawString()以及适当的X位置偏移量进行打印。

请参阅Graphics.DrawString的文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM