[英]How to get the first five character of a String
你可以使用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;
您可以使用Substring(int startIndex, int length)
string result = str.Substring(0,5);
子字符串從指定的字符位置開始並具有指定的長度。 此方法不會修改當前實例的值。 相反,它返回一個新的字符串,從當前字符串中的 startIndex 位置開始, MSDN
如果源字符串少於五個字符怎么辦? 您將通過使用上述方法獲得異常。 我們可以使用條件來檢查字符串中的字符數是否大於 5,然后通過 Substring 獲取前五個。 注意我已將源字符串分配給 firstFiveChar 變量。 如果字符小於 5,則 firstFiveChar 不會更改,因此不需要其他部分。
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.Length > 5 ?
stringValue.Substring(0, 5) :
stringValue;
使用.Substring(
的缺點是您需要檢查給定字符串的長度。
解決方案 2(使用“Take”):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
使用'Take'將防止您需要檢查給定字符串的長度。
請注意,在 C# 8.0 中有一種新方法可以做到這一點:范圍運算符
或者我喜歡稱它們為 Pandas 切片。
舊方式:
string newString = oldstring.Substring(0, 5);
新方法:
string newString = oldstring[..5];
乍一看,這對於較短代碼的可讀性來說似乎是一個非常糟糕的權衡,但新功能為您提供了
像這樣很酷的東西:
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]
使用 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)
之前包含括號.Substring(0,X)
否則您將不附加任何內容。
string str = (yourStringVariable + " ").Substring(0,5).Trim();
使用這種技術,您將不必擔心其他答案中提到的ArgumentOutOfRangeException
。
string str = "GoodMorning"
string strModified = str.Substring(0,5);
從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;
}
}
當 str 小於 5 時,請嘗試此代碼。
string strModified = str.Substring(0,str.Length>5?5:str.Length);
這就是你在 2020 年的做法:
var s = "ABCDEFGH";
var first5 = s.AsSpan(0, 5);
Span<T>直接指向字符串的內存,避免分配臨時字符串。 當然,任何要求string
后續方法都需要進行轉換:
Console.WriteLine(first5.ToString());
不過,如今許多.NET
API 允許跨度。 如果可能的話,堅持下去!
注意:如果以.NET Framework
為目標,請添加對System.Memory包的引用,但不要期望同樣出色的性能。
我用:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
或者如果您也想檢查空格(而不是僅空):
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))
您仍然需要確保字符串具有正確的長度,否則會拋出ArgumentOutOfRangeException
如果我們只想要任何字段的前 5 個字符,那么這可以通過 Left 屬性來實現
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
這就是我正在使用的,字符串少於所需字符沒有問題
private string TakeFirstCharacters(string input, int characterAmount)
{
return input?.Substring(0, Math.Min(input.Length, characterAmount));
}
在 C# 8 中,您可以使用范圍運算符。 如果您的原始字符串短於所需長度,為了避免異常,您可以使用Math.Min
:
string newString = oldstring[..Math.Min(oldstring.Length, 5)];
當然,如果知道原來的字符串比較長,可以優化:
string newString = oldstring[..5];
試試下面的代碼
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
我已經嘗試了上述答案,我認為最好的是這個
@item.First_Name.Substring(0,1)
在這個我可以得到字符串的第一個字母
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.