Hab*_*bib 200
你可以使用Enumerable.Take像:
char[] array = yourStringVariable.Take(5).ToArray();
Run Code Online (Sandbox Code Playgroud)
或者您可以使用String.Substring.
string str = yourStringVariable.Substring(0,5);
Run Code Online (Sandbox Code Playgroud)
请记住,String.Substring如果字符串的长度小于所需的字符,则可能会抛出异常.
如果要将结果返回到字符串中,则可以使用:
使用String Constructor和LINQ Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
Run Code Online (Sandbox Code Playgroud)方法的优点是不会事先检查长度.
String.Substring错误检查喜欢:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
Run Code Online (Sandbox Code Playgroud)
Tec*_*hDo 46
请试试:
yourString.Substring(0, 5);
Run Code Online (Sandbox Code Playgroud)
检查C#Substring,String.Substring方法
Adi*_*dil 36
你可以使用Substring(int startIndex,int length)
string result = str.Substring(0,5);
Run Code Online (Sandbox Code Playgroud)
子字符串从指定的字符位置开始并具有指定的长度.此方法不会修改当前实例的值.相反,它返回一个新字符串,其长度字符从当前字符串MSDN中的startIndex位置开始
如果源字符串少于五个字符怎么办?您将通过使用上述方法获得异常.我们可以通过条件检查字符串中的字符数是否大于5然后通过Substring获得前五个.注意我已将源字符串分配给firstFiveChar变量.如果字符小于5,则firstFiveChar不会更改,因此不需要部分.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Run Code Online (Sandbox Code Playgroud)
ilt*_*ter 25
没有人提到如何在使用时进行适当的检查Substring(),所以我想为此做出贡献.
如果您不想使用Linq和使用Substring(),则必须确保您的字符串大于Substring()函数的第二个参数(长度).
假设您需要前5个字符.你应该通过适当的检查得到它们,如下所示:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Run Code Online (Sandbox Code Playgroud)
如果没有这个检查,Substring()函数会抛出异常,因为它会迭代不存在的字母.
我想你应该已经明白了...
Ste*_*ven 17
问题.Substring(,)是,您需要确保给定的字符串至少具有所请求的字符数的长度,否则ArgumentOutOfRangeException将抛出.
解决方案1(使用'子串'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
Run Code Online (Sandbox Code Playgroud)
使用的缺点.Substring(是您需要检查给定字符串的长度.
解决方案2(使用'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Run Code Online (Sandbox Code Playgroud)
使用'Take'将阻止您需要检查给定字符串的长度.
小智 15
请注意,在 C# 8.0 中有一种新方法可以做到这一点:范围运算符
或者我喜欢称它们为 Pandas 切片。
旧方式:
string newString = oldstring.Substring(0, 5);
Run Code Online (Sandbox Code Playgroud)
新方法:
string newString = oldstring[..5];
Run Code Online (Sandbox Code Playgroud)
乍一看,这对于较短代码的可读性来说似乎是一个非常糟糕的权衡,但新功能为您提供了
像这样很酷的东西:
var slice1 = list[2..^3]; // 列表[Range.Create(2, Index.CreateFromEnd(3))]
var slice2 = list[..^3]; // 列表[Range.ToEnd(Index.CreateFromEnd(3))]
var slice3 = list[2..]; // 列表[Range.FromStart(2)]
var slice4 = list[..]; // 列表[Range.All]
Via*_*nev 12
我不知道为什么有人提到这一点.但这是实现这一目标的最短,最简单的方法.
string str = yourString.Remove(n);
Run Code Online (Sandbox Code Playgroud)
n - 您需要的字符数
例
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Run Code Online (Sandbox Code Playgroud)
小智 9
附加五个空格字符,然后切掉前五个字符并修剪结果.您追加的空格数量应与您要追加的数量相匹配.请务必在之前加上括号,.Substring(0,X)否则您将不附加任何内容.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Run Code Online (Sandbox Code Playgroud)
使用这种技术,您不必担心ArgumentOutOfRangeException其他答案中提到的问题.
小智 8
使用PadRight函数可防止字符串太短,抓住需要的内容,然后在一条语句中从头开始修剪所有空格。
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Run Code Online (Sandbox Code Playgroud)
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Run Code Online (Sandbox Code Playgroud)
2020 年你会这样做:
var s = "ABCDEFGH";
var first5 = s.AsSpan(0, 5);
Run Code Online (Sandbox Code Playgroud)
Span <T>直接指向字符串的内存,避免分配临时字符串。当然,任何要求 a 的后续方法都需要string转换:
Console.WriteLine(first5.ToString());
Run Code Online (Sandbox Code Playgroud)
不过,如今许多.NETAPI 都允许跨度。如果可能的话,坚持下去!
注意:如果目标添加对System.Memory.NET Framework包的引用,但不要指望同样出色的性能。