C# Разделить Строку На Другую Строку
Я использую Split() метод разделения строк, но это работает только в том случае, если вы разделяете строку символом. Есть ли способ разделить a string, С другой строкой, являющейся разделением по параметру? Я попытался преобразовать разделитель в массив символов, но не повезло.
другими словами, Я хотел бы разделить string:
THExxQUICKxxBROWNxxFOX
by xx, и возвращает массив со значениями:
БЫСТРЫЙ, КОРИЧНЕВЫЙ, ЛИС
9 ответов:
чтобы разделить строку, вам нужно будет использовать перегрузка массива строк.
string data = "THExxQUICKxxBROWNxxFOX"; return data.Split(new string[] { "xx" }, StringSplitOptions.None);
есть перегрузка Сплит, которая принимает строки.
"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);вы можете использовать любой из этих StringSplitOptions
- нет - возвращаемое значение включает массив элементы, содержащие пустую строку
- RemoveEmptyEntries - возвращаемое значение не включает элементы массива, которые содержать пустую строку
Так что если строка "THExxQUICKxxxxBROWNxxFOX",
StringSplitOptions.Noneвозвращает пустую запись в массиве для части "xxxx" whileStringSplitOptions.RemoveEmptyEntriesне будет.
Regex.Split(string,"xx")Как я делаю это обычно. Конечно, вам понадобится
using System.Text.RegularExpressions;но чем снова мне нужна эта lib все время.
есть перегрузка строку.Сплит для этого:
"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);
Я вообще люблю использовать свое собственное расширение для этого:
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); } }однако это приведет к исключению, если Microsoft решит включить этот метод-перегрузка в более поздних версиях. Это также вероятная причина, по которой Microsoft не включила этот метод в то же время: по крайней мере одна компания, в которой я работал, использовала такое расширение во всех своих проектах C#.
можно условно определить метод во время выполнения, если он не существует.
все приведенные выше ответы верны. Я иду на один шаг дальше и заставляю C# работать для меня, определяя метод расширения на String:
public static string[] Split(this string toSplit, string splitOn) { return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None); }таким образом, я могу вызвать его на любой строке простым способом, который я наивно ожидал в первый раз, когда я попытался это сделать:
"a big long string with stuff to split on".Split("g str");
string data = "THExxQUICKxxBROWNxxFOX"; return data.Replace("xx","|").Split('|');просто выберите символ замены тщательно (выберите тот, который вряд ли будет присутствовать в строке уже)!
самый простой способ-это использовать
String.Replace:string myString = "THExxQUICKxxBROWNxxFOX"; mystring = mystring.Replace("xx", ", ");или проще:
string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");
Это тоже просто:
string data = "THExxQUICKxxBROWNxxFOX"; string[] arr = data.Split("xx".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
Comments