[英]Get the two first and last chars of a string C#
好吧,我想獲取字符串的第一個和最后一個字符。 這是我已經得到的
public static string FirstLastChars(this string str)
{
return str.Substring(0,2);
}
順便提一句。 這是一個擴展方法
從 C# 8.0 開始,您可以使用數組范圍:
public static class StringExtentions {
public static string FirstLastChars(this string str)
{
// If it's less that 4, return the entire string
if(str.Length < 4) return str;
return str[..2] + str[^2..];
}
}
在此處檢查解決方案: https : //dotnetfiddle.net/zBBT3U
您可以使用現有的字符串 Substring 方法。 檢查以下代碼。
public static string FirstLastChars(this string str)
{
if(str.Length < 4)
{
return str;
}
return str.Substring(0,2) + str.Substring(str.Length - 1, 1) ;
}
作為替代方案,您可以使用Span
Api。
首先,您需要創建一個緩沖區並將其傳遞給Span
實例。 (有了這個,你就有了一個可寫的Span
。)
var strBuffer = new char[3];
var resultSpan = new Span<char>(strBuffer);
您可以從原始str
創建兩個ReadOnlySpan<char>
實例,以引用前兩個字母和最后一個字母。
var strBegin = str.AsSpan(0, 2);
var strEnd = str.AsSpan(str.Length - 1, 1);
為了從兩個Span
對象生成單個字符串,您需要將它們連接起來。 您可以通過使用可寫跨度來做到這一點。
strBegin.CopyTo(resultSpan.Slice(0, 2));
strEnd.CopyTo(resultSpan.Slice(2, 1));
最后讓我們將Span<char>
轉換為string
。 您可以通過多種方式執行此操作,但最方便的兩個命令如下:
new string(resultSpan)
resultSpan.ToString()
幫手:
public static class StringExtentions
{
public static string FirstLastChars(this string str)
{
if (str.Length < 4) return str;
var strBuffer = new char[3];
var resultSpan = new Span<char>(strBuffer);
var strBegin = str.AsSpan(0, 2);
var strEnd = str.AsSpan(str.Length - 1, 1);
strBegin.CopyTo(resultSpan.Slice(0, 2));
strEnd.CopyTo(resultSpan.Slice(2, 1));
return new string(resultSpan);
}
}
用法:
class Program
{
static void Main(string[] args)
{
string str = "Hello World!";
Console.WriteLine(str.FirstLastChars()); //He!
}
}
試試這個代碼-
static void Main(string[] args)
{
int[] numbers = { 12, 34, 64, 98, 32, 46 };
var finalList = numbers.Skip(2).SkipLast(2).ToArray();
foreach(var item in finalList)
{
Console.WriteLine(item + "");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.