gpt4 book ai didi

c# - 如何截断 .NET 字符串?

转载 作者:IT王子 更新时间:2023-10-29 03:27:52 25 4
gpt4 key购买 nike

我想截断一个字符串,使其长度不超过给定值。我正在写入数据库表,并希望确保我写入的值满足列数据类型的约束。

例如,如果我能写出以下内容就好了:

string NormalizeLength(string value, int maxLength)
{
return value.Substring(0, maxLength);
}

不幸的是,这会引发异常,因为 maxLength 通常会超出字符串 value 的边界。当然,我可以编写如下函数,但我希望这样的东西已经存在。

string NormalizeLength(string value, int maxLength)
{
return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}

执行此任务的难以捉摸的 API 在哪里?有吗?

最佳答案

不幸的是,字符串上没有Truncate() 方法。您必须自己编写这种逻辑。但是,您可以做的是将它包装在一个扩展方法中,这样您就不必在任何地方都复制它:

public static class StringExt
{
public static string Truncate(this string value, int maxLength)
{
if (string.IsNullOrEmpty(value)) return value;
return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}
}

现在我们可以写:

var someString = "...";
someString = someString.Truncate(2);
2021-09-17 具有后缀和 c#8 可空引用类型的替代方案。
public static class StringExt
{
public static string? Truncate(this string? value, int maxLength, string truncationSuffix = "…")
{
return value?.Length > maxLength
? value.Substring(0, maxLength) + truncationSuffix
: value;
}
}

写:

"abc".Truncate(2);          // "ab…"
"abc".Truncate(3); // "abc"
((string)null).Truncate(3); // null

关于c# - 如何截断 .NET 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2776673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com