如果长度大于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