2009-06-16 17 views
6

Przykład: a - b - c musi być podzielona jako A i B - C, zamiast 3 podciągijaki sposób można podzielić ciąg tylko raz przy użyciu C#

+0

Jego niesamowite 1000+ pytania z tagiem „programowanie” po prostu musiałem pójść dowiedzieć się, jak wiele quesitons były oznaczone "pytanie" i jest kilka !! @Jon: FYI, SO jest zawsze o programowaniu, pytania niebędące programowaniem bardzo szybko zostaną zamknięte. – AnthonyWJones

+0

... ale tylko 15 pytań oznaczono jako "pytanie";) – Guffa

+0

Get-tag-nazi! :) –

Odpowiedz

17

Określ maksymalną liczbę elementów, które chcesz:

string[] splitted = text.Split(new string[]{" - "}, 2, StringSplitOptions.None); 
+1

Nie ma takiego przeciążenia. –

+3

Tak, jest ... – Guffa

+0

Przepraszam, musiałem coś źle odczytać. –

12
string s = "a - b - c"; 
string[] parts = s.Split(new char[] { '-' }, 2); 
// note, you'll still need to trim off any whitespace 
2

Można użyć indexOf(), aby znaleźć pierwsze wystąpienie znaku, który chcesz podzielić, a następnie podciąć(), aby uzyskać dwa aspekty. Na przykład ...

int pos = myString.IndexOf('-'); 
string first = myString.Substring(0, pos); 
string second = myString.Substring(pos); 

To jest szorstka przykład - musisz grać z nim, jeśli nie chcesz, aby znak separatora tam - ale trzeba się pomysł z tego.

1
string[] splitted = "a - b - c".Split(new char[]{' ', '-'}, 2, StringSplitOptions.RemoveEmptyEntries); 
0
var str = "a-b-c"; 
int splitPos = str.IndexOf('-'); 
string[] split = { str.Remove(splitPos), str.Substring(splitPos + 1) }; 
-1

mam dołączył późno, a wiele z powyższych odpowiedzi są dopasowane do moich następującymi słowami:

łańcuch ma własną

podziału

Możesz użyć sam znaleźć rozwiązanie swojego problemu, po to przykład, jak na swój problem:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     var PrimaryString = "a - b - c"; 
     var strPrimary = PrimaryString.Split(new char[] { '-' }, 2); 
     Console.WriteLine("First:{0}, Second:{1}",strPrimary[0],strPrimary[1]); 

    } 
} 

Output: 
First:a , Second: b - c 
+0

To da ci tablicę z następującymi '[a, b, c]', a nie '[a, b-c]'. Plus niewłaściwy język. –

+0

Dzięki @JamieR za cytowanie. Poprawiłem moją odpowiedź. –

Powiązane problemy