#

C#: Split String into Words

 

In C# kann man einen langen Text in einzelne Worte aufteilen, indem man den String-Text mit der Methode string.Split(..) in ein Array mit String-Werten umwandelt.

string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );

 

Anschließend kann man das String-Array durchlaufen und die einzelnen Werte entnehmen.

Durch den Parameter StringSplitOptions.RemoveEmptyEntries wird verhindert, dass Null-Werte in das Array geschrieben werden.

 

Das folgende C# Code Beispiel zeige, wie ein Filter-Text in einem Suchfeld bei Webseiten aufgeteilt wird in einen Filter-String.

Dieser String  ist zusammengefasst die SQL-Where Bedingung, welche SQL-Felder filtert.

//--< Split Text to Words >--

string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );

for (int iWord = 0; iWord < arrWords.Length; iWord++)

{

    string sWord = arrWords[iWord];

    sFilter = sFilter + " AND [Path] LIKE '%" + sWord + "%'";

}

 

Beispiel im Photo Explorer, wo verschiedene Texte gesucht werden anhand kombinierter Worte, die durch ein Leerzeichen getrennt sind.

Die SQL Bedingung wird dabei mit AND verknüpft.

 

 

Komplettes C# Split Code Bespiel mit überleitung in SQL String einer SQLite Datenbank

string sFilter = "";

 

//--< Split Text to Words >--

string[] arrWords = sText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );

for (int iWord = 0; iWord < arrWords.Length; iWord++)

{

    string sWord = arrWords[iWord];

    sFilter = sFilter + " AND [Path] LIKE '%" + sWord + "%'";

}

 

 

//< replace 1 >

System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex(" AND ", System.Text.RegularExpressions.RegexOptions.IgnoreCase);

sFilter = regEx.Replace(sFilter, " ",1, 0);

//</ replace 1 >

//--</ Split Text to Words >--

 

 

 

//< get records >

string sSQL = @"SELECT [Foldername], [Path] FROM Folders WHERE " + sFilter  + " ORDER BY Path";

ISQLiteStatement recFolders = clsDB.get_Recordset(sSQL);

//</ get records >

 

 

 

Mobile

.

123movies