2009-06-16 17 views
6

Ejemplo: a - b - c debe dividirse como a y b - c, en vez de 3 subseries¿Cómo puedo dividir la cadena sola vez usando C#

+0

Sus sorprendentes de 1000 preguntas etiquetado como "programación" sólo tenía que ir a buscar a cuántos eran quesitons etiquetado "pregunta" y hay algunos !! @Jon: FYI, SO siempre se trata de programación, las preguntas que no sean de programación se votarán muy rápidamente. – AnthonyWJones

+0

... pero solo 15 preguntas tienen la etiqueta "pregunta";) – Guffa

+0

Get'em tag-nazi! :) –

Respuesta

17

Especificar el número máximo de elementos que desea:

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

No hay tal sobrecarga. –

+3

Sí, hay .. – Guffa

+0

Lo siento, debo haber leído mal algo. –

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

Puede usar indexOf() para buscar la primera instancia del carácter que desea dividir, luego subserrar() para obtener los dos aspectos. Por ejemplo ...

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

Este es un ejemplo aproximado - se necesita para jugar con él si no desea que el carácter separador de allí - pero usted debe conseguir la idea de esto.

4
"a-b-c".Split(new char[] { '-' }, 2); 
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

me he unido tarde y muchas de las respuestas anteriores son emparejados con mis siguientes palabras:

cadena tiene su propio

de Split

Puedes usar el mismo para encontrar la solución de su problema, siguiendo el ejemplo es como por su tema:

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

Esto le dará una matriz con los siguientes '[a, b, c]' y no '[a, b-c]'. Más lenguaje equivocado. –

+0

Gracias @JamieR por citarlo. Corregí mi respuesta. –

Cuestiones relacionadas