Tokenizador de cadenas en C#
Este tutorial analizará la tokenización de una cadena en varias subcadenas en C#.
Tokenizador de cadenas usando la función String.Split()
en C#
En el procesamiento del lenguaje natural, la tokenización de cadenas es el método de dividir una oración en todas las palabras individuales presentes en la oración. Estas palabras individuales se llaman tokens.
Tenemos la clase StringTokenizer
en Java para propósitos similares. En C#, no tenemos directamente una implementación de la clase StringTokenizer
, pero podemos lograr resultados similares usando la función String.Split()
disponible en C#.
La función String.Split()
puede dividir una cadena determinada en una matriz de subcadenas en función de algún separador o delimitador. Esta función toma la expresión regular para el delimitador o separador y devuelve una matriz de subcadenas.
Para tokenizar una cadena dada, podemos dividirla en subcadenas usando un espacio en blanco como separador o delimitador.
El siguiente fragmento de código muestra cómo podemos usar la función String.Split()
para tokenizar una cadena en C#.
string inputString = "This is some input String";
string[] tokens = inputString.Split(' ');
foreach (string token in tokens) {
Console.WriteLine(token);
}
Producción :
This
is
some
input
String
La salida muestra la cadena original This is some input String
dividida en palabras individuales con el método String.Split()
en C#.
Este tokenizador de cadenas es más poderoso que el StringTokenizer
disponible en Java. El simple StringTokenizer
solo permite un delimitador, mientras que el método anterior puede dividir la cadena de entrada en función de varios delimitadores.
El siguiente fragmento de código muestra un ejemplo para demostrar el poder de la función String.Split()
.
string inputString =
"This is some input String, but, is it actually a good string? The answer is upto you.";
string[] tokens = inputString.Split(new char[] { ' ', ',', '?' });
foreach (string token in tokens) {
Console.WriteLine(token);
}
Producción :
This
is
some
input
String
but
is
it
actually
a
good
string
The
answer
is
upto
you.
El fragmento de código anterior toma la cadena de entrada:
This is some input String, but, is it actually a good string? The answer is upto you.
El código lo divide en tokens en función de múltiples delimitadores. Las entradas vacías en la salida se pueden eliminar especificando StringSplitOptions.RemoveEmptyEntries
como segundo parámetro de la función String.Split()
.
La ventaja de la clase StringTokenizer
sobre este método es que también puede almacenar todos los delimitadores o tokens dentro de la cadena dada, mientras que la función String.Split()
descarta los delimitadores.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn