c# - 使用 PadRight 方法填充字符串

标签 c# .net string

我正在尝试在 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.

你真的像上面的例子那样重新分配它吗?如果是这样 - 那么没有更多细节我只能想到以下内容:

  1. 如果您将其存储在数据库中并进行检索,一些具有正确设置的数据库可能会为您“修剪”。
  2. 您在其他地方有修剪空白的逻辑。这在处理用户输入时很常见。

编辑 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/

相关文章:

php - 如何用 PHP 交换字符串中两个不同字符的值? A变成B,B变成A

c# - 上传文件控件在后面的代码中不显示任何文件

.net - 如何开始对大型应用程序进行自动化测试?

c# - 在运行时将更改应用到主窗体 Form.Icon

java - 根据字符串是否为空创建Guava的Optional的简洁方法

python - Python 3 中 for 循环的数据类型和文档

c# - .NET (C#) 进程和 Adob​​e Acrobat

c# - 在 Windows Phone 7 上从独立存储打开 JPEG 时出现问题

c# - CS 学生的现代 Powerbuilder 与 C#/Java/C++

c# - 如何舍入一个数字