2016-03-22 47 views
7

Ho utilizzato il metodo Split() per dividere le stringhe. Ma questo funziona se si imposta un carattere per condizione in string.Split(). C'è un modo per dividere una stringa quando è vedere Uppercase?C# string.split() stringa separata in maiuscolo

E 'possibile ottenere qualche parola da qualche stringa non separati come:

DeleteSensorFromTemplate 

e la stringa risultato è quello di essere come:

Delete Sensor From Template 

risposta

8

Usa Regex.split

string[] split = Regex.Split(str, @"(?<!^)(?=[A-Z])"); 
2

Se non ti piace RegEx e vuoi solo inserire gli spazi mancanti, lo farai anche il lavoro:

public static string InsertSpaceBeforeUpperCase(this string str) 
{ 
    var sb = new StringBuilder(); 

    char previousChar = char.MinValue; // Unicode '\0' 

    foreach (char c in str) 
    { 
     if (char.IsUpper(c)) 
     { 
      // If not the first character and previous character is not a space, insert a space before uppercase 

      if (sb.Length != 0 && previousChar != ' ') 
      { 
       sb.Append(' '); 
      }   
     } 

     sb.Append(c); 

     previousChar = c; 
    } 

    return sb.ToString(); 
}