2

今天我学到了两件事

1 - 在文本框中显示 int 格式:0001

Number.ToString("0000.");

2 - 以这种格式显示双倍:03.00 英镑在文本框中

Price.ToString("£ 00.00");

我的问题是:如何在 c# 中显示字符串的限制?

我的意思是字符串中的值是

string myString = "Hello World!"

我希望它显示 20 个字母,以便显示

"Hello World!        "

如果超过 20 个字母,它将跳过显示其余部分,例如:

string myString = "I Love every thing you say :*"

它只会显示以下内容:

"I Love every thing y"

最多显示 20 个字母(计算空格)..

任何想法?

4

4 回答 4

3

您需要使用 Substring 或 PadRight

int length = 20;
string original = "I Love every thing you say :*";

string finalString = original.Length > length ? 
                   original.Substring(0, length) : 
                   original.PadRight(length);

这将根据需要采用适当长度的子字符串或用空格填充。

于 2012-06-08T19:19:53.047 回答
2
string myString = "I Love every thing you say :*"

string fixedWidth = string.Format("{0, -20}", (myString.Length > 20 ? myString.Substring(0,20) : myString));

作为字符串扩展:

public static string ToFixedWidth(this string s, int length)
{
    return string.Format("{0, -20}, s.Length > length ? s.Substring(0, length) : s);
}
于 2012-06-08T19:17:43.717 回答
1

我相信

String.Format("{0,-20}", "Hello World!");

会给你你需要的。

编辑:应该是逗号

编辑:没关系,这不会修剪。也许与子字符串结合:

String.Format("{0,-20}", "Hello World!").Substring(0,20);
于 2012-06-08T19:22:00.587 回答
0

您还可以添加一个包含 21 个空格的字符串,然后删除以获得正确的长度:

string formattedStr = (myString + new string(' ', 21)).Remove(20);
于 2012-06-08T21:14:29.010 回答