C# cadena dividida
Línea..::.Método de división (matriz
Hora de actualización: 16 de junio de 438 + octubre de 2007
La matriz de cadenas devuelta contiene estas subcadenas en la instancia, separados por elementos de la matriz de caracteres Unicode especificada
Espacio de nombres:sistema
Ensamblaje:mscorlib (en mscorlib.dll)
Sintaxis
Visual Basic (declaración)
Función pública dividida (_
delimitador ParamArray como Char() _
) como cadena()
Visual Basic (uso)
Marcar instancia como cadena
Mostrar separador como carácter()
El valor de retorno tenue es cadena()
returnValue = instancia. split(separador)
C#
Cadena pública[] split(
params char[] delimitador
)
Visual C++
Público:
Array& ltstring^ >^split(
...array<wchar_t>separator
)
J#
Cadena pública[] split(
char[] delimitador
)
JScript
División de función pública(
p>
...Separador:Carácter[]
):Cadena[]
Parámetros
Separador
Tipo: matriz
Una matriz de caracteres Unicode que delimitan subcadenas en este caso, una matriz vacía sin delimitadores o una referencia nullNothingnullptrnull (Nada en Visual Básico)
Devuelve. Valor
Tipo: Matriz
Una matriz cuyos elementos, en este caso, contienen subcadenas separadas por uno o más caracteres en el delimitador. Para obtener más información, consulte la sección Comentarios.
Comentarios
El elemento de matriz devuelto no contiene el delimitador
Devuelto si esta instancia no contiene caracteres en el delimitador. La matriz consta de un único elemento que contiene esta instancia.
Si el argumento del separador es una referencia nullNothingnullptrnull (Nothing en Visual Basic) o no contiene caracteres, se utilizan espacios en blanco como separadores, como se enumera a continuación. table. Los caracteres de espacio en blanco reconocidos por el método Split (son ligeramente diferentes de los caracteres de espacio en blanco reconocidos por el método String.::.Trim). )
Nombre Unicode
Punto de código Unicode
Comentarios
Lista de caracteres
U+0009
Avance de línea
U+000A
Tabla de líneas
U+000B
Avance de página
U+000C
Intro
U+000D
Espacio
U+0020
Siguiente línea
U+0085
Introducido en . NET Framework versión.
Espacio sin separación
U+00A0
Marca de espacio Ogham
U+1680
EN QUAD
U+2000
Cuadrilátero EM
U+2001
Espacio EN
U+2002
p>Espacio EM
U+2003
Tres espacios por EM
U+2004
Cuatro espacios por espacios EM
U+2005
Seis espacios por EM
U+2006
Espacio gráfico
U+2007
Espacios de puntuación
U+2008
Espacios finos
U+2009
Espaciado mínimo
U+200A
Espacio de ancho cero
U+200B
Únicamente. NET Framework versiones 1.0 y 1.1.
Separador de líneas
U+2028
Separador de párrafos
U+2029
Espacio ideográfico
U+3000
Cada elemento del delimitador define un delimitador separado. Si dos delimitadores son adyacentes, o se encuentra un delimitador al principio o al final de esta instancia, el elemento de matriz correspondiente contiene nulo.
Por ejemplo:
Valor de cadena
Separador
Matriz devuelta
"42, 12, 19"
nuevo Char[] { ', ', ' ' } (C#)
Char() = {, " c ", " c}) (Visual Basic)
{"42", "", "12", "", "19"}
"42..12..19"
Nuevos personajes [] { ' . '} (C#)
Carbón() = { . "c} (Visual Basic)
{"42", "", "12", " ", "19"}
"Banana"
Nuevo carácter [] { ' . '} (C#)
Char() = { "c } (. Visual Basic)
{"banana"}
" Darb\nSmarba" (C#)
Darb & amp vbLf & amp"smar ba" (Visual Básico)
nuevo Char[] {} (C#)
Char() = {} (Visual Basic)
{"Darb "," Smarba" }
" Darb\nSmarba" (C#)
Darb & vbLf & "smar ba" (Visual Basic)
null (C# )
Ninguno (Visual Basic)
{"Darb", "Smarba"}
Consideraciones de rendimiento
El método Split devuelve El objeto de matriz asigna memoria y también asigna un objeto String para cada elemento de la matriz. Si su aplicación requiere un rendimiento óptimo, o si la administración de la asignación de memoria es crítica en su aplicación, considere usar el método IndexOf o IndexOfAny. O puede optar por usar el método Compare para ubicar una subcadena. una cadena.
Si la cadena se divide en un delimitador, use el método IndexOf o IndexOfAny para ubicar una subcadena en la cadena. Para dividir una cadena en la cadena delimitadora, use el método IndexOf o IndexOfAny para ubicar. el primer carácter de la cadena delimitadora.
Luego use el método Comparar para determinar si los caracteres después del primer carácter son iguales al resto de la cadena delimitadora.
Además, si se utiliza el mismo conjunto de caracteres para dividir una cadena en múltiples llamadas al método de división, considere crear una matriz y hacer referencia a ella en cada llamada al método. Esto puede reducir en gran medida la sobrecarga adicional de cada llamada a método.
Ejemplo
El siguiente ejemplo muestra cómo extraer palabras individuales de un bloque de texto tratando los espacios y la puntuación como delimitadores. Pasado a la cadena ..::.split(array
Código de copia de Visual Basic
Prueba de división de clase pública
Subtrunk público compartido()
p >Atenuar palabras As String = "Esta es una lista de palabras con: un poco de puntuación."
Atenuar dividir As String() = palabras Split(New [Char]() { " "c ,"," c," "c,":" c})
Para cada cadena en la división
if s.
Console.writeline
Terminará si...
Siguiente s
End Sub ' main
Prueba dividida "Finalizar clase"
El ejemplo muestra el siguiente resultado en la consola:
Esto
es
a
Índice
Acerca de
Palabras
Con
a
Una pequeña cantidad
Acerca de
Puntuación
Copiar código C#
Usar el sistema;
Clase pública SplitTest {< /p >
Public static void Main() {
string palabras = "Esta es una lista de palabras, con: un poco de puntuación.";
cadena [] split = Palabra Split(new Char [] { ' ', ', ', '.', ':'});
foreach(cadena dividida){
if (s.Trim). ()!= "")
Consola.Escribir línea;
}
}
}
//Este ejemplo muestra el siguiente resultado en la consola:
//Esto
//es
// a
/ /Lista
//de
//palabras
//con
// un
/ /bits
//de
//puntuación
Copiar código de Visual C++
Usar el sistema de espacio de nombres;
Usar espacio de nombres System::Collections;
int main()
{
String^word="Esta es una lista de palabras, con: a un poco de puntuación.
";
Array<Char>^chars = { ' ',',','->',':'};
Array<string^> ^split = palabras-& gt ; dividir (carácter);
ienumerador^·mayem = dividir-& gt; obtener enumerador(); p>{
string^ s = safe _ cast <string^>(myEnum->current);
If (!s-> trim()-> ; es igual a ( "" )
Console::WriteLine
}
}
//Este ejemplo muestra el siguiente resultado en el consola:
//Esto
//es
// una
//Lista
/ /de
//palabras
//con
// un
//bit
/ /of
//puntuación
J#Copiar código
Importar al sistema *;
Prueba dividida de clase pública p>
{
Public static void main(String[] args)
{
String palabras = "Esta es una lista de palabras con: un poco de puntuación.";
String Split[] = Words. ,','.', ':' });
for(int iCtr = 0; iCtr & ltsplit . get _ Longitud(); iCtr++) {
Cadena s = (Cadena)split .get_Item(iCtr);
if (!(s.Trim().Equals(" ")){
Console.WriteLine;
}
}
} //principal
}
//Este ejemplo muestra lo siguiente en la salida de la consola:
//Esto
//es
// a
//lista
/ / de
//palabra
//con
// a
//bit
/ /
//Puntuación
Código de copia JScript
Sistema de importación; p>
Clase pública SplitTest {
Función estática pública Main() : void {
var palabras : String = "Esta es una lista de palabras con: un poco de puntuación. ";
Delimitador de variable: char[] = [' ', ', ', '.', ':'];
var split: String [] = palabras. split (separador);
for (var i : int in split) {
var s:String = split[I];
if ( s.Trim ()! = "")
Consola.
Escribir línea;
}
}
}
SplitTestmain();
//Este ejemplo es La consola muestra el siguiente resultado:
//this
//is
// a
//list
//de
//palabra
//con
// un
//bit
//
//Puntuación
Plataformas
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC, Xbox 360
. NET Framework y . NET Compact Framework no es compatible con todas las versiones de todas las plataformas. Consulte para obtener una lista de versiones compatibles. NET Framework requisitos del sistema.
Información de la versión
. NET Framework
Soportado por: 3.5, 3.0, 2.0, 1.1 y 1.0.
. NET Framework Lite
Soportado por las siguientes versiones: 3.5, 2.0, 1.0
XNA Framework
Soportado por las siguientes versiones: 2.0, 1.0