Am'am fost folosind Split () metoda pentru a împărți siruri de caractere, dar aceasta apare doar la locul de muncă dacă sunteți divizarea unui șir de către un personaj. Există o modalitate de a împărți un "string", cu un alt șir fiind împărțit de parametru?
Am'am încercat convertirea splitter într-un personaj matrice, cu nici un noroc.
Cu alte cuvinte, am'd place să împartă "string":
THExxQUICKxxBROWNxxFOX
de "xx", și returnează o matrice cu valorile:
, RAPID, MARO, FOX
În scopul de a împărți printr-un șir de tine'll trebuie să utilizați șir de matrice suprasarcină.
string data = "THExxQUICKxxBROWNxxFOX";
return data.Split(new string[] { "xx" }, StringSplitOptions.None);
Există o suprasarcină de Split]1 care are siruri de caractere.
"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);
Puteți utiliza oricare dintre aceste StringSplitOptions
Deci, dacă șirul este "THExxQUICKxxxxBROWNxxFOX", StringSplitOptions.Nici unul nu va reveni un gol de intrare în gamă pentru "xxxx" parte, în timp ce
StringSplitOptions.RemoveEmptyEntries` nu vor.
Regex.Split(string, "xx")
este modul în care am face-o de obicei. Desigur'll nevoie de un
using System.Text.RegularExpressions;
dar apoi, din nou am nevoie de bibliotecă tot timpul.
Nu's o supraîncărcare a Șir de caractere.Split pentru acest lucru:
"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);
În general, îmi place să-mi folosesc propria extensie pentru asta:
string data = "THExxQUICKxxBROWNxxFOX";
var dataspt = data.Split("xx");
//>THE QUICK BROWN FOX
//the extension class must be declared as static
public static class StringExtension
{
public static string[] Split(this string str, string splitter)
{
return str.Split(new[] { splitter }, StringSplitOptions.None);
}
}
Acest lucru va duce însă la o Excepție, dacă Microsoft decide să includă această metodă-suprasarcină în versiunile ulterioare. De asemenea, acesta este probabil motivul pentru care Microsoft nu a inclus această metodă în același timp: Cel puțin unul compania pentru care am lucrat, a folosit o astfel de extindere în toate C# proiecte.
Acesta poate fi, de asemenea, posibil să condiționat defini metode la runtime, dacă nu't există.
Răspunsurile anterioare sunt corecte. Merg un pas mai departe și de a face C# lucra pentru mine prin a defini o metodă de prelungire pe Șir:
public static string[] Split(this string toSplit, string splitOn) {
return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}
Așa pot să-l numesc pe orice șir într-un mod simplu eu naiv așteptat prima dată când am încercat pentru a realiza acest lucru:
"a big long string with stuff to split on".Split("g str");
Ca de .NET Core 2.0, nu este o suprascriere, care are un șir de caractere.
Deci, acum puteți face "THExxQUICKxxBROWNxxFOX".Split("xx")
.
Cel mai simplu mod este de a utiliza Șir de caractere.Înlocuiți
:
string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");
Sau mai simplu:
string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");