【问题标题】:String formatting with spaces带空格的字符串格式
【发布时间】:2014-12-22 14:59:13
【问题描述】:

我需要在 c# 中进行一些手工格式化,只有空格。这是我现在显示的内容:

Conc2_CO   ( Y? = 170.2; Y? = 2; delta = -15)
atns_UreaMassFlowDemand   ( Y? = 0; Y? = 0; delta = 0)

这就是我想要的:

Conc2_CO                 ( Y? = 170.2; Y? = 2;     delta  = -15)
atns_UreaMassFlowDemand  ( Y? = 0;     Y? = 0;     delta  = 0)

我尝试使用new string(' ', x) 处理字符串长度,但这很痛苦,而且似乎随机工作,因为所有字符的长度都不相同(即:lw 短).. . 有更好的选择吗?

编辑:

生成的字符串是由名称(左)和我在库中添加的信息(右)连接构成的,因此我不能使用 string.format(),因为我只能使用正确的部分。

我需要使用 WinForms 在 ZedGraph Legend 上显示此信息(但我怀疑这会改变什么)。

编辑 2

使用填充,这就是我所拥有的:

不是我想要的。

【问题讨论】:

  • 查看 string.format() dotnetperls.com/string-format
  • @RoyDictus 我忘了说这个字符串的构造很奇怪,我会编辑我的问题
  • 这里有一个问题,显示了如何在字符串中填充空格。也许会有所帮助。 stackoverflow.com/questions/644017/…
  • 既然您说“字符的长度不同”,我假设您在这里不是一般在谈论控制台或固定长度输出。这意味着您必须考虑用于呈现输出的字体。在 SO 上搜索“MeasureString”或“MeasureText”。
  • 好吧,您可以使用Graphics.MeasureString 精确测量您的字符串,因此“所有字符的长度不同”的问题将消失。

标签: c# string formatting


【解决方案1】:

您可以更改字体以使用monospace 字体。

这样您就可以使用String.Format 并使用填充。

【讨论】:

  • 我提供了一个链接来帮助用户完成这项工作,但感谢MM!
【解决方案2】:

我是删除可能以前的答案。 试试这个:

 string s = String.Format("{0,-12}({1,8})", "Example", 223);

{0,-12} -0 - 值索引,-12 左对齐 12 个字符 {1,8} - 1 - 值索引,8 右对齐 8 个字符

更多:http://msdn.microsoft.com/pl-pl/library/system.string.format%28v=vs.110%29.aspx见:格式项

【讨论】:

  • 你能添加代码来生成你的结果吗?我认为这是错误的,因为填充应该让位给价值。在您的情况下,它看起来只在单词之间留出空格。
猜你喜欢
  • 2013-05-16
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 2012-05-10
  • 2021-04-05
  • 2018-11-07
相关资源
最近更新 更多