Answers:
您可以使用Enumerable.Take像这样:
char[] array = yourStringVariable.Take(5).ToArray();
或者,您可以使用String.Substring。
string str = yourStringVariable.Substring(0,5);
请记住,String.Substring
如果字符串的长度小于所需的字符,则可能会引发异常。
如果要以字符串形式返回结果,则可以使用:
使用字符串构造函数和LINQ Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
该方法的优点是无需事先检查长度。
String.Substring
与错误检查一起使用喜欢:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
这是错的。考虑一个包含10个空格的字符串-您的代码将返回所有10个空格。请IsNullOrEmpty
改用。(最好不要IsNullOrWhiteSpace
与其他任何测试结合使用;而是测试null + empty,然后测试Trim
是否指定了行为,然后执行所需的任何测试/操作。)
您可以使用Substring(int startIndex,int length)
string result = str.Substring(0,5);
子字符串从指定的字符位置开始,并具有指定的长度。此方法不会修改当前实例的值。而是返回一个新字符串,该字符串的长度字符从当前字符串MSDN中的startIndex位置开始
如果源字符串少于五个字符怎么办?通过使用上述方法,您将获得异常。我们可以通过条件来检查字符串中的字符数是否大于5,然后通过子字符串获得前5个字符。注意我已将源字符串分配给firstFiveChar变量。如果字符小于5,则firstFiveChar不会更改,因此不需要part。
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
没有人提到在使用时如何进行正确的检查Substring()
,因此我想为此做出贡献。
如果您不想使用Linq
和搭配使用Substring()
,则必须确保您的字符串大于Substring()
函数的第二个参数(长度)。
假设您需要前5个字符。您应该对它们进行适当的检查,如下所示:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
没有此检查,Substring()
函数将引发异常,因为它会遍历不存在的字母。
我想你应该已经明白了...
问题.Substring(,)
是,您需要确保给定的字符串至少具有要求的字符数的长度,否则ArgumentOutOfRangeException
将抛出。
解决方案1(使用“子字符串”):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
使用的缺点.Substring(
是您需要检查给定字符串的长度。
解决方案2(使用“接受”):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
使用“ Take”将防止您需要检查给定字符串的长度。
使用PadRight函数可防止字符串太短,抓住所需的内容,然后在一条语句中从尾部开始全部修剪空格。
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
我不知道为什么有人提到这个。但这是实现这一目标的最短,最简单的方法。
string str = yourString.Remove(n);
n
-您需要的字符数
例
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
附加五个空白字符,然后截断前五个字符并修剪结果。您追加的空格数量应与您要剪切的数量匹配。请务必在前面加上括号,.Substring(0,X)
否则将不添加任何内容。
string str = (yourStringVariable + " ").Substring(0,5).Trim();
使用此技术,您不必担心ArgumentOutOfRangeException
其他答案中提到的问题。
请注意,C#8.0中提供了一种新的方法:范围运算符
或我喜欢称呼它们为“熊猫片”。
旧方法:
string newString = oldstring.Substring(0, 5);
新方法:
string newString = oldstring[..5];
乍一看似乎看起来有些折衷,但是对于较短的代码却有些可读性,但是新功能为您提供了
像这样的好东西:
var slice1 = list [2 .. ^ 3]; // list [Range.Create(2,Index.CreateFromEnd(3))]
var slice2 = list [.. ^ 3]; // list [Range.ToEnd(Index.CreateFromEnd(3))]
var slice3 = list [2 ..]; // list [Range.FromStart(2)]
var slice4 = list [..]; //列表[Range.All]
从C#中的字符串中获取前n个字符
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
下面是一个扩展方法,该方法检查字符串是否大于所需的字符串,并将字符串缩短为已定义的最大字符数,并附加'...'。
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
或者,您可以使用String.ToCharArray()。
它以int startindex
和int length
作为参数并返回一个char[]
new string(stringValue.ToCharArray(0,5))
您仍然需要确保字符串的长度正确,否则它将抛出 ArgumentOutOfRangeException
尝试下面的代码
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
我已经尝试了以上答案,我认为最好的就是这个
@item.First_Name.Substring(0,1)
这样我可以得到字符串的第一个字母
char
**,而您询问的是**字符。它们不是同一件事。𣊾
和𣇞
是两个字符,我需要用昨天刚它未能在C#编写我的软件使用,因为程序员不知道之间的区别char
和字符。不要陷入这个陷阱!