我看过这个问题以获得字符串的第一个字符。在C#中有没有一种方法可以获取字符串的前n个字符?
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;
yourString.Substring(0, 5);
yourString
的长度小于5,则会抛出异常。为了避免异常,我们可以根据条件进行子字符串操作,例如 yourString.Length <= 5 ? yourString : yourString.Substring(0, 5)
。 - Zaheer您可以使用Substring(int startIndex, int length)函数。
string result = str.Substring(0,5);
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()
函数会抛出异常,因为它会迭代不存在的字母。
我想你已经明白了...
提醒一下,在C# 8.0中有一种新的方法:范围运算符。
或者,就像我喜欢称呼它们一样,Pandas切片。
旧方法:
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[..]; // list[Range.All]
.Substring(,)
的问题在于,你需要确保给定的字符串长度至少与所需字符数相同,否则将抛出 ArgumentOutOfRangeException
异常。
解决方案1(使用 'Substring'):
var firstFive = stringValue != null && stringValue.Length > 5 ?
stringValue.Substring(0, 5) :
stringValue;
使用.Substring()
的缺点是您需要检查给定字符串的长度。
解决方案2(使用“Take”):var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
使用 'Take' 会避免您需要检查给定字符串的长度。
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
。
string str = "GoodMorning"
string strModified = str.Substring(0,5);
char
**,而你问的是关于 字符。它们不是同一回事。和
是我昨天需要使用的两个字符,但由于我使用的 C# 软件编写者不知道char
和字符之间的区别,所以失败了。不要陷入这个陷阱! - hippietrail