Sztringek elkülönítése a String.Split használatával C-ben#
A String.Split metódus egy részsztringtömböt hoz létre a bemeneti sztring egy vagy több elválasztó alapján történő felosztásával. Ez a módszer gyakran a legegyszerűbb módja annak, hogy elválasztsa a sztringet a szóhatárokon. Más meghatározott karakterek vagy sztringek sztringjeinek felosztására is használható.
Feljegyzés
A cikkben szereplő C#-példák a Try.NET beágyazott kódfuttatóban és játszótéren futnak. Kattintson a Futtatás gombra egy példa interaktív ablakban való futtatásához. Miután végrehajtotta a kódot, módosíthatja és futtathatja a módosított kódot a Futtatás gombra kattintva. A módosított kód vagy az interaktív ablakban fut, vagy ha a fordítás sikertelen, az interaktív ablakban megjelenik az összes C#-fordító hibaüzenet.
Példák a String.Splitre
Az alábbi kód az egyes szavakhoz tartozó sztringek tömbjeire osztja fel a gyakori kifejezéseket.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Az elválasztó karakter minden példánya létrehoz egy értéket a visszaadott tömbben. Mivel a C# tömbjei nulla indexeltek, a tömb minden sztringje 0-ról a tulajdonság által Array.Length visszaadott értékre lesz indexelve, mínusz 1:
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
for (int i = 0; i < words.Length; i++)
{
System.Console.WriteLine($"Index {i}: <{words[i]}>");
}
Az egymást követő elválasztó karakterek az üres sztringet adják meg értékként a visszaadott tömbben. Az alábbi példában láthatja, hogyan jön létre egy üres sztring, amely a szóköz karaktert választja elválasztóként.
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Ez a viselkedés megkönnyíti az olyan formátumok használatát, mint a táblázatos adatokat képviselő vesszővel tagolt értékek (CSV-fájlok). Az egymást követő vesszők üres oszlopot jelölnek.
Megadhat egy opcionális StringSplitOptions.RemoveEmptyEntries paramétert a visszaadott tömb üres sztringjeinek kizárásához. A visszaadott gyűjtemény bonyolultabb feldolgozásához a LINQ használatával módosíthatja az eredményütemezést.
String.Split több elválasztó karaktert is használhat. Az alábbi példa szóközöket, vesszőket, pontokat, kettőspontokat és tabulátorokat használ elválasztó karakterekként, amelyeket egy tömbben adnak át Split . A kód alján lévő hurok megjeleníti a visszaadott tömbben lévő összes szót.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
Az elválasztó egymást követő példányai létrehoznak egy üres sztringet a kimeneti tömbben:
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo :,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
String.Split sztringek tömbje (karaktersorozatok, amelyek elválasztóként működnek a célsztring elemzéséhez, egyetlen karakter helyett).
string[] separatingStrings = { "<<", "..." };
string text = "one<<two......three<four";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
System.Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
System.Console.WriteLine(word);
}
Sztring felosztása a GitHub Copilot használatával
Az IDE-ben a GitHub Copilot használatával kódokat hozhat létre sztringek String.Split
felosztásához a C#-ban.
Ha a Visual Studio 2022 17.8-es vagy újabb verzióját használja, kipróbálhatja a Visual Studióban az AI-alapú GitHub Copilotot, hogy egy bemeneti sztringet alsztringekre bontsa egy vagy több elválasztó alapján. Küldje el kérdését kérdésként a Copilot csevegőablakában, ahogyan az alábbi példában is látható. A szerkesztőablakban beágyazott csevegéssel is küldhet kéréseket.
Feljegyzés
A GitHub Copilot mesterséges intelligenciával működik, így meglepetések és hibák lehetségesek. Ellenőrizze a létrehozott kódot vagy javaslatokat. A GitHub Copilot általános használatáról, a termék hatásáról, az emberi felügyeletről és az adatvédelemről további információt a GitHub Copilot gyakori kérdések című témakörében talál.
Az alábbi szöveg egy példakérést jelenít meg a Copilot-csevegéshez:
C#-kód létrehozása a Split.String használatával sztringek részsztringekre való felosztásához. A bemeneti sztring a "Nyersz néhányat. Elveszthet néhányat." A határolók tér és pont. Adjon meg példakimenetet.
Testre szabhatja a kérést, hogy a követelményeknek megfelelő sztringeket és elválasztójeleket használjon.
A csevegési funkciók, például perjelparancsok, fájlokra, metódusokra, osztályokra és szálakra mutató hivatkozások használatával szándékot állíthat be, és jobb válaszokat kaphat a hatókörrel rendelkező környezettel. Az IDE-ben megnyitott meglévő fájlok esetén a GitHub Copilotot inline csevegéssel /generate code to split string1 in #Filename by delimiter spaces
kérheti.
Az alábbi kimenet egy példa Copilot Chat-választ mutat be:
Here is an example of how you can use the Split method in C# to split the string "You win some. You lose some." using space and period as delimiters:
using System;
class Program
{
static void Main()
{
string input = "You win some. You lose some.";
char[] delimiters = new char[] { ' ', '.' };
string[] substrings = input.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string substring in substrings)
{
Console.WriteLine(substring);
}
}
}
**Example Output**
You
win
some
You
lose
some
Amikor a Copilot egy kódblokkot ad vissza, a válasz tartalmazza a kód másolásának, a kód új fájlba való beszúrásának vagy a kód kimenetének előnézetét.
Feljegyzés
Az eredmények eltérhetnek a példaválaszokban láthatótól. Az AI-modellek nem determinisztikusak, ami azt jelenti, hogy eltérő válaszokat adhatnak vissza, ha ugyanazt a kérdést teszik fel. Ennek oka lehet a további tanulás és alkalmazkodás az idő függvényében, a nyelvi változat, a kontextus változásai, például a csevegési előzmények stb.
További információk: