如何获得一个string的前五个字符

我已经读过这个问题来获得string的第一个字符 。 有没有办法从C#中的string中获取前n个字符?

你可以使用Enumerable.Take像:

 char[] array = yourStringVariable.Take(5).ToArray(); 

或者你可以使用String.Substring 。

 string str = yourStringVariable.Substring(0,5); 

请记住, String.Substring在string长度小于所需字符的情况下可能会引发exception。

如果你想把结果返回到string,那么你可以使用:

  • 使用string构造函数和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); 

检查C#子串 , String.Substring方法

你可以使用Substring(int startIndex,int length)

 string result = str.Substring(0,5); 

子string从指定的字符位置开始并具有指定的长度。 此方法不会修改当前实例的值。 而是返回一个新string,其长度字符从当前stringMSDN中的startIndex位置开始

如果源stringless于五个字符呢? 您将通过使用上述方法得到例外。 我们可以通过条件来检查string中的字符数是否大于5,然后通过Substring得到前5个字符。 注意我已经将源string分配给firstFiveCharvariables。 如果字符小于5,那么第一个字符不会改变,所以不需要其他部分。

 string firstFiveChar = str; If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5) firstFiveChar = yourStringVariable.Substring(0, 5); 

.Substring(,)的问题是,你需要确保给定的string至less有问题的字符长度的长度,否则会引发ArgumentOutOfRangeException

解决scheme1(使用“子串”):

 var firstFive = stringValue != null ? stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) : null; 

使用.Substring(的缺点是.Substring(你需要检查给定string的长度)。

解决scheme2(使用“拿”):

 var firstFive = stringValue != null ? string.Join("", stringValue.Take(5)) : null; 

使用'Take'将防止你需要检查给定string的长度。

没有人提到如何使用Substring()进行适当的检查,所以我想为此做出贡献。

如果您不想使用Linq并使用Substring() ,则必须确保您的string比Substring()函数的第二个参数(长度)大。

假设你需要前5个字符。 你应该通过适当的检查来得到它们,就像这样:

 string title = "love" // 15 characters var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5); // firstFiveChars: "love" (4 characters) 

没有这个检查, Substring()函数会抛出一个exception,因为它会遍历不在那里的字母。

我想你应该已经明白了…

我不知道为什么有人提到这个。 但这是实现这一目标的最简单方法。

 string str = yourString.Remove(n); 

n – 您需要的字符数

 var zz = "7814148471"; Console.WriteLine(zz.Remove(5)); //result - 78141 
 string str = "GoodMorning" string strModified = str.Substring(0,5); 

追加五个空格字符,然后切断前五个字符并修剪结果。 您追加的空格数量应该与您正在剪切的数字相匹配。 确保在.Substring(0,X)之前包括括号.Substring(0,X)否则您将不添加任何内容。

 string str = (yourStringVariable + " ").Substring(0,5).Trim(); 

使用这种技术,您不必担心在其他答案中提到的ArgumentOutOfRangeException

下面是一个扩展方法,用来检查一个string是否大于所需string,并将该string缩短到最大字符数量并附加“…”。

 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; } } 

从C#中的string中获取前n个字符

 String yourstring="Some Text"; String first_n_Number_of_Characters=yourstring.Substring(0,n); 

我用:

 var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length); 

或者如果你想检查空白也可以select(而不是只有空):

 var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue 

或者你可以使用String.ToCharArray() 。
它采用int startindexint length作为参数,并返回一个char[]

 new string(stringValue.ToCharArray(0,5)) 

你仍然需要确保string有合适的长度,否则会抛出一个ArgumentOutOfRangeException

尝试下面的代码

  string Name = "Abhishek"; string firstfour = Name.Substring(0, 4); Response.Write(firstfour); 

我已经尝试了以上的答案,最好的,我认为是这一个

 @item.First_Name.Substring(0,1) 

在这我可以得到string的第一个字母