Csharp/C#教程:如果长度大于String的长度,则子串不按预期工作分享


如果长度大于String的长度,则子串不按预期工作

好的,我知道如果/其他工作,我需要一个替代方案。

我在用

B = String.Concat(A.Substring(0, 40)); 

捕获值的前40个字符。

如果A处的值大于40 ,则B能够捕获,但如果A的值小于40 ,则在B处没有捕获值。

不理解在String.Concat中只传递单个字符串的目的。 您的目的可通过以下方式解决:

 if(A.Length > 40) B= A.Substring(0,40); else B=A; 

快而脏:

  A.Length > 40 ? A.Substring(0, 40) : A 

为什么不为它创建一个扩展…称它为Truncate或Left,或者其他什么。

 public static class MyExtensions { public static string Truncate(this string s, int length) { if(s.Length > length) return s.Substring(0, length); return s; } } 

然后你可以这样简单地调用它:

 string B = A.Truncate(40); 

另请注意,您不必将其作为扩展方法,尽管它会更清晰。

在StringTool类中:

  public static string Truncate(string value, int length) { if(value.Length > length) return value.Substring(0, length); return value; } 

并称之为:

 string B = StringTool.Truncate(A, 40); 

使用下面的代码来子串

 B = String.padright(40).Substring(0, 40)) 

扩展最适合像这样的问题;)我有一些脏名但每个人都知道它会做什么 – 这是exception安全的子串:

 public static string SubstringNoLongerThanSource(this string source, int startIndex, int maxLength) { return source.Substring(startIndex, Math.Min(source.Length - startIndex, maxLength)); } 

您可以使用Microsoft.VisualBasic.Strings Left 。

 B = Microsoft.VisualBasic.Strings.Left(A, 40); 

无论如何,不​​知道你为什么要使用Concat

上述就是C#学习教程:如果长度大于String的长度,则子串不按预期工作分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 B = string.Concat(A.Substring(0, Math.Min(40, A.Length))); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/984300.html

(0)
上一篇 2021年12月20日
下一篇 2021年12月20日

精彩推荐