Megosztás a következőn keresztül:


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 spaceské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.

Képernyőkép arról, hogy a GitHub Copilot Chat használatával a Visual Studióban sztringeket oszthat fel részsztringekre.

További információk:

Lásd még