Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

String.Split (Método) (Char[], StringSplitOptions)

Devuelve una matriz de cadenas que contiene las subcadenas de esta cadena que están delimitadas por elementos de la matriz de caracteres Unicode especificada. Un parámetro especifica si se van a devolver elementos de matriz vacíos.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(false)]
public string[] Split(
	char[] separator,
	StringSplitOptions options
)

Parámetros

separator
Tipo: System.Char[]
Matriz de caracteres Unicode que delimitan las subcadenas de esta cadena, una matriz vacía sin delimitadores o null.
options
Tipo: System.StringSplitOptions
RemoveEmptyEntries para omitir los elementos de matriz vacíos de la matriz devuelta; o bien, None para incluir los elementos de matriz vacíos en la matriz devuelta.

Valor devuelto

Tipo: System.String[]
Una matriz cuyos elementos contienen las subcadenas de esta cadena que están delimitadas por uno o varios caracteres de separator. Para obtener más información, vea la sección Comentarios.

ExcepciónCondición
ArgumentException

options no es uno de los valores de StringSplitOptions.

Los caracteres delimitadores no se incluyen en los elementos de la matriz devuelta.

Si esta instancia no contiene ninguno de los caracteres de separator, la matriz devuelta estará formada por un solo elemento que contiene esta instancia. Si el parámetro separator es null o no contiene caracteres, se supone que los caracteres de espacio en blanco son los delimitadores. El estándar Unicode define caracteres de espacio en blanco y devuelve true si se pasan al método Char.IsWhiteSpace. Sin embargo, si el parámetro separator en la llamada a esta sobrecarga de método es null, la resolución de sobrecarga del compilador produce un error. Para identificar el método llamado inequívocamente, el código debe indicar el tipo del null. En el siguiente ejemplo se muestran varias maneras de identificar esta sobrecarga inequívocamente.


string phrase = "The quick  brown fox";
string[] words;

words = phrase.Split(default(Char[]), StringSplitOptions.RemoveEmptyEntries);

words = phrase.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries);

words = phrase.Split(null as char[], StringSplitOptions.RemoveEmptyEntries);


Cada elemento de separator define un carácter delimitador independiente. Si el valor del parámetro options es RemoveEmptyEntries y la longitud de esta instancia es cero, se devuelve una matriz vacía.

Si el valor del parámetro options es None y dos delimitadores son adyacentes o se encuentra un delimitador al principio o al final de esta instancia, el elemento de matriz correspondiente contiene Empty.

Consideraciones sobre el rendimiento

Los métodos Split asignan la memoria para el objeto de matriz devuelta y un objeto String para cada elemento de la matriz. Si la aplicación requiere un rendimiento óptimo o si la administración de la asignación de memoria es básica en la aplicación, piense en usar los métodos IndexOf o IndexOfAny y, opcionalmente, el método Compare para buscar una subcadena en una cadena.

Si divide una cadena en un carácter separador, utilice el método IndexOf u IndexOfAny para buscar un carácter separador en la cadena. Si divide una cadena en una cadena separadora, utilice el método IndexOf u IndexOfAny para buscar el primer carácter de la cadena separadora. A continuación, utilice el método Compare para determinar si los caracteres situados detrás de ese primer carácter son iguales a los caracteres restantes de la cadena separadora.

Además, si se usa el mismo juego de caracteres para dividir las cadenas en varias llamadas al método Split, piense en crear una sola matriz y hacer referencia a ella en cada llamada al método. De esta forma, se reduce considerablemente la sobrecarga adicional de cada llamada al método.

Notas para los llamadores

En .NET Framework 3.5 y versiones anteriores, si el método Split se pasa un separator que es null o no contiene ningún carácter, el método usa un juego de caracteres para dividir la cadena ligeramente diferente al que usa el método Trim para recortar la cadena. En .NET Framework 4, ambos métodos usan un conjunto idéntico de caracteres de espacio en blanco Unicode.

En el ejemplo siguiente se usa la enumeración StringSplitOptions para incluir o excluir las subcadenas generadas por el método Split.


// This example demonstrates the String() methods that use
// the StringSplitOptions enumeration.
using System;

class Sample 
{
    public static void Main() 
    {
    string s1 = ",ONE,,TWO,,,THREE,,";
    string s2 = "[stop]" +
                "ONE[stop][stop]" +
                "TWO[stop][stop][stop]" +
                "THREE[stop][stop]";
    char[] charSeparators = new char[] {','};
    string[] stringSeparators = new string[] {"[stop]"};
    string[] result;
// ------------------------------------------------------------------------------
// Split a string delimited by characters.
// ------------------------------------------------------------------------------
    Console.WriteLine("1) Split a string delimited by characters:\n");

// Display the original string and delimiter characters.
    Console.WriteLine("1a )The original string is \"{0}\".", s1);
    Console.WriteLine("The delimiter character is '{0}'.\n", 
                       charSeparators[0]);

// Split a string delimited by characters and return all elements.
    Console.WriteLine("1b) Split a string delimited by characters and " +
                      "return all elements:");
    result = s1.Split(charSeparators, StringSplitOptions.None);
    Show(result);

// Split a string delimited by characters and return all non-empty elements.
    Console.WriteLine("1c) Split a string delimited by characters and " +
                      "return all non-empty elements:");
    result = s1.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries);
    Show(result);

// Split the original string into the string and empty string before the 
// delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("1d) Split a string delimited by characters and " +
                      "return 2 elements:");
    result = s1.Split(charSeparators, 2, StringSplitOptions.None);
    Show(result);

// Split the original string into the string after the delimiter and the 
// remainder of the original string after the delimiter.
    Console.WriteLine("1e) Split a string delimited by characters and " +
                      "return 2 non-empty elements:");
    result = s1.Split(charSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
    Show(result);

// ------------------------------------------------------------------------------
// Split a string delimited by another string.
// ------------------------------------------------------------------------------
    Console.WriteLine("2) Split a string delimited by another string:\n");

// Display the original string and delimiter string.
    Console.WriteLine("2a) The original string is \"{0}\".", s2);
    Console.WriteLine("The delimiter string is \"{0}\".\n", stringSeparators[0]);

// Split a string delimited by another string and return all elements.
    Console.WriteLine("2b) Split a string delimited by another string and " +
                      "return all elements:");
    result = s2.Split(stringSeparators, StringSplitOptions.None);
    Show(result);

// Split the original string at the delimiter and return all non-empty elements.
    Console.WriteLine("2c) Split a string delimited by another string and " +
                      "return all non-empty elements:");
    result = s2.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
    Show(result);

// Split the original string into the empty string before the 
// delimiter and the remainder of the original string after the delimiter.
    Console.WriteLine("2d) Split a string delimited by another string and " +
                      "return 2 elements:");
    result = s2.Split(stringSeparators, 2, StringSplitOptions.None);
    Show(result);

// Split the original string into the string after the delimiter and the 
// remainder of the original string after the delimiter.
    Console.WriteLine("2e) Split a string delimited by another string and " + 
                      "return 2 non-empty elements:");
    result = s2.Split(stringSeparators, 2, StringSplitOptions.RemoveEmptyEntries);
    Show(result);
    }

// Display the array of separated strings.
    public static void Show(string[] entries)
    {
    Console.WriteLine("The return value contains these {0} elements:", entries.Length);
    foreach (string entry in entries)
        {
        Console.Write("<{0}>", entry);
        }
    Console.Write("\n\n");
    }
}
/*
This example produces the following results:

1) Split a string delimited by characters:

1a )The original string is ",ONE,,TWO,,,THREE,,".
The delimiter character is ','.

1b) Split a string delimited by characters and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

1c) Split a string delimited by characters and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

1d) Split a string delimited by characters and return 2 elements:
The return value contains these 2 elements:
<><ONE,,TWO,,,THREE,,>

1e) Split a string delimited by characters and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO,,,THREE,,>

2) Split a string delimited by another string:

2a) The original string is "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]".
The delimiter string is "[stop]".

2b) Split a string delimited by another string and return all elements:
The return value contains these 9 elements:
<><ONE><><TWO><><><THREE><><>

2c) Split a string delimited by another string and return all non-empty elements:
The return value contains these 3 elements:
<ONE><TWO><THREE>

2d) Split a string delimited by another string and return 2 elements:
The return value contains these 2 elements:
<><ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]>

2e) Split a string delimited by another string and return 2 non-empty elements:
The return value contains these 2 elements:
<ONE><TWO[stop][stop][stop]THREE[stop][stop]>

*/


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft