utorok, 03 január 2012 09:58 Written by 1430 times
Rate this item
(1 Vote)

C# - String join , string split

String join

Ak chcete spojiť jednotlivé reťazce v C # môžete na to použiť statickú metodu triedy string - string.Join.
Tá vám umožní ľahko pospájať napr. prvky poľa do výstupného reťazca. Jednotlivé prvky budú rozdelené s čiarkami alebo iným oddeľovačom.
Na nasledujúcom príklade si ukážeme aká je string.Join vynikajúca metóda, ktorá Vám uľahčí život.

Kód v C#

using System;
class Program
{
    static void Main()
    {
        string[] myArray = { "www", "projectik", "eu" };
        Console.WriteLine(string.Join(".", myArray)); // ako oddelovac je bodka (.)    
    }
}

 Výstup:

www.projectik.eu

Join vs append

Teraz si ukážeme ako spraviť presne to iste použitím metódy append. Keďže táto metóda vie pridať znak iba na koniec, aby sme dosiahli ten isty efekt potrebujeme na to použiť cyklus foreach, v ktorom prejdeme všetky prvky poľa a ku každému pridáme "oddeľovač".Takto si vytvoríme vlastnú metodu join . Je na Vás, pre ktorú z možnosti sa rozhodnete.

Kód v C#

static string myJoin(string[] myArray)
{
    StringBuilder builder = new StringBuilder();
    foreach (string s in myArray)
    {
        builder.Append(s).Append(".");
    }
    //pomocou TrimEnd odstránime posledny znak,ak je to bodka
    return builder.ToString().TrimEnd(new char[] { '.' });
}

String split

Teraz si ukážeme presne opačný proces. Ukážeme si ako rozdeliť string. Použijeme metódu split, ktorá nám vracia pole stringov z pôvodného stringu na zaklade oddeľovača - separatora.

Kód v C#

 

using System;
class Program
{
    static void Main()
    {
        string str = "www.projectik.eu";
        string[] myArray;
        char[] splitchar = { '.' };
        myArray = str.Split(splitchar);
        foreach (string s in myArray)
        {
            Console.WriteLine(s);
        }         
    }
}

 

 Výstup:

www
projectik
eu

Last modified on pondelok, 19 december 2016 21:28
Ing.Jaroslav Vadel

Som zakladateľom www.projectik.eu.

Hram sa na programatora, ktory ovlada c#,cpp,java,unity3d,php,html,NI testand... ..."Naprogramovat program,ktory funguje vie kazdy. Ale to,ze program funguje este neznamena,ze je napisany spravne "..

Website: www.projectik.eu