我正在尝试在 C# 中的字符串末尾添加空格:
Trip_Name1.PadRight(20);
还试过:
Trip_Name1.PadRight(20,' ');
这些似乎都不起作用。但是我可以用任何其他字符填充字符串。为什么?
我应该更具体一些,这里是完整的代码:
lnk_showmatch_1.Text = u_trip.Trip_Name1.PadRight(20,' ');
最佳答案
字符串是immutable , 它们无法更改。 PadRight
返回填充字符串的新实例,而不是更改调用它的字符串。你想要的是这个:
Trip_Name1 = Trip_Name1.PadRight(20,' ');
关于 this 的讨论很精彩关于为什么字符串不可变的 StackOverflow 问题。
编辑:
None of this seems to work. However I can pad the string with any other character.
你真的像上面的例子那样重新分配它吗?如果是这样 - 那么没有更多细节我只能想到以下内容:
- 如果您将其存储在数据库中并进行检索,一些具有正确设置的数据库可能会为您“修剪”。
- 您在其他地方有修剪空白的逻辑。这在处理用户输入时很常见。
编辑 2:
I should have been more specific
我将根据您正在处理 HTML/ASP.NET 的命名约定来大胆猜测。在大多数情况下,在 HTML 中 - white space is collapsed .例如:
<div><a>Hello World</a></div>
<div><a>Hello World</a></div>
两个 a
标签将呈现相同的内容,因为空白正在折叠。如果您确实在使用 HTML - 这可能是您的原因以及填充适用于所有其他字符的原因。如果您查看呈现的标记的源代码 - 它是否包含额外的空格?
如果您想保留空格,请尝试在名为 white-space
的元素上应用 CSS 样式并将其设置为 pre
。例如:
<a style="white-space:pre">hello world </a>
这将导致保留空白。请记住,像这样使用空白有缺点。浏览器不会以相同的方式呈现它们,等等。我不会将其用于布局目的。考虑改用 CSS 和类似 min-width
的东西。
关于c# - 使用 PadRight 方法填充字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303668/