Entwickler-Ecke

Basistechnologien - Von string die letzten 2 Zeichen abtrennen


MasterUller - Mi 07.08.13 08:43
Titel: Von string die letzten 2 Zeichen abtrennen
Hallo.
Ich suche jetzt schon ewig nach einer Lösung für mein Problem und habe nichts passenden gefunden, deswegen hoffe ich doch sehr, dass ihr mir helfen könnt.

Wie es schon oben steht ist meine Frage: Wie schaffe ich es von einen string die letzten 2 Zeichen abzuspalten und in ein Array zu speichern?
Ich schaffe es nur durch z.B.: test.Text.Split(" ".ToCharArray()) nach einen Leerzeichen zu trennen, aber ich will nur die letzten 2 Zeichen abspalten und das Leerzeichen nicht mehr eingeben müssen.


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Mi 07.08.2013 um 09:59


Ralf Jansen - Mi 07.08.13 09:05

Eine Entsprechung von Split die mit Positionen arbeitet gibt es nicht. Da wirst du dir mit string.Substring was basteln müssen.
Beispiel für eine entsprechende Extension Method


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
class Program
{
    static void Main(string[] args)
    {
        string test = "Hallo Welt";

        string[] splitted = test.SplitByIndex(246).ToArray();
        string[] splittedFromEnd = test.SplitByIndex(test.Length - 2).ToArray();

    }
}

public static class Helper
{
    public static IEnumerable<string> SplitByIndex(this string source, params int[] indexes)
    {
        int lastIndex = 0;
        foreach (var index in indexes)
        {
            if (index >= source.Length)
                break;

            yield return source.Substring(lastIndex, index - lastIndex);
            lastIndex = index;
        }
        yield return source.Substring(lastIndex);
    }
}


jfheins - Mi 07.08.13 09:10

Also wenn es dir wirklich nur um zwei Zeichen geht:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
    static void Main()
    {
        string str = "Hallo Welt";        
        var l = str.Length;

        char[] array = new char[] {str[l-2], str[l-1]};
    }


Wenn es auch mal n Zeichen sein sollen: http://stackoverflow.com/questions/3453274/using-linq-to-get-the-last-n-elements-of-a-collection


MasterUller - Mi 07.08.13 09:29

Vielen dank für die 2 schnellen Antworten.

Dadurch konnte ich jetzt mein Problem lösen... Vielen dank!