如何在C#中实现字符串显示限制?

如何在C#中实现字符串显示限制?,c#,C#,今天我学到了两件事 1-在文本框中将int显示为此格式:0001 数字。ToString(“0000”) 2-在文本框中显示此格式的双精度:03.00英镑 价格:ToString(£00.00”) 我的问题是:如何在c#中显示字符串的限制 我的意思是字符串中的值是 string myString = "Hello World!" 我想它显示20个字母,所以它将显示 "Hello World! " 如果超过20个字母,它将跳过显示其余字母 例如: string myString

今天我学到了两件事

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

数字。ToString(“0000”)


2-在文本框中显示此格式的双精度:03.00英镑

价格: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个字母(计算空格)

有什么想法吗

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);
}

您需要使用子字符串或PadRight

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

string finalString = original.Length > length ? 
                   original.Substring(0, length) : 
                   original.PadRight(length);
这将根据需要使用适当长度的子字符串,或用空格填充。

我相信

String.Format("{0,-20}", "Hello World!");
会给你你需要的

编辑:应该是逗号

编辑:没关系,这不会修剪。可能与子字符串结合使用:

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

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

string formattedStr = (myString + new string(' ', 21)).Remove(20);

myString.ToString(“llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll?为了便于使用,你可以将我的三元字符串扩展方法包装起来。这不会处理填充,子字符串(20)会给你错误的字符串。。。(您需要
Substring(0,20)
(也请注意大小写)我非常确定您需要使用
myString.Substring(0,20)
Substring(20)
将开始设置为20,而不是结束。这仍然无法处理填充。请查看“Hello world”示例要求(注意末尾的空格)“在文本框中显示双精度:03.00英镑”几乎从来都不是正确的做法。对于货币,不要使用
双精度
,使用
十进制
。顺便说一句-对于显示文字,将其作为代码(缩进4个空格)而不是引号(使用
)将正确保留间距。