如何获得一个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 startindex
和int 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的第一个字母