C #에서 문자열을 다른 문자열로 분할
나는 Split()
문자열을 분할 하는 방법을 사용해 왔지만 문자열을 문자로 분할하는 경우에만 작동하는 것처럼 보입니다. 을 분할하는 방법이 string
있습니까? 다른 문자열은 매개 변수로 분할됩니까?
운이 좋지 않고 스플리터를 문자 배열로 변환하려고 시도했습니다.
즉, 다음을 분할하고 싶습니다 string
.
THExxQUICKxxBROWNxxFOX
로 xx
, 값이있는 배열을 반환합니다.
더, 퀵, 브라운, 폭스
문자열로 분할하려면 string array overload 를 사용해야합니다 .
string data = "THExxQUICKxxBROWNxxFOX";
return data.Split(new string[] { "xx" }, StringSplitOptions.None);
"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);
다음 StringSplitOptions 중 하나를 사용할 수 있습니다.
- 없음 -반환 값에 빈 문자열이 포함 된 배열 요소가 포함됩니다.
- RemoveEmptyEntries- 반환 값에 빈 문자열이 포함 된 배열 요소가 포함되지 않습니다.
따라서 문자열이 "THExxQUICKxxxxBROWNxxFOX"이면 StringSplitOptions.None
"xxxx"부분에 대해 배열에 빈 항목을 반환 하지만 그렇지 않은 경우에는 반환합니다 StringSplitOptions.RemoveEmptyEntries
.
Regex.Split(string, "xx")
제가 보통하는 방식입니다. 물론 당신은
using System.Text.RegularExpressions;
하지만 다시 한 번 그 라이브러리가 항상 필요합니다.
이를 위해 String.Split 오버로드가 있습니다 .
"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 # 프로젝트에서 이러한 확장을 사용했습니다.
It may also be possible to conditionally define the method at runtime if it doesn't exist.
string data = "THExxQUICKxxBROWNxxFOX";
return data.Replace("xx","|").Split('|');
Just choose the replace character carefully (choose one that isn't likely to be present in the string already)!
The previous answers are all correct. I go one step further and make C# work for me by defining an extension method on String:
public static string[] Split(this string toSplit, string splitOn) {
return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}
That way I can call it on any string in the simple way I naively expected the first time I tried to accomplish this:
"a big long string with stuff to split on".Split("g str");
As of .NET Core 2.0, there is an override that takes a string.
So now you can do "THExxQUICKxxBROWNxxFOX".Split("xx")
.
This is also easy:
string data = "THExxQUICKxxBROWNxxFOX";
string[] arr = data.Split("xx".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
The easiest way is to use String.Replace
:
string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");
Or more simply:
string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");
참고URL : https://stackoverflow.com/questions/2245442/split-a-string-by-another-string-in-c-sharp
'your programing' 카테고리의 다른 글
Ruby의 "continue"에 해당 (0) | 2020.10.02 |
---|---|
IEnumerable vs List-무엇을 사용합니까? (0) | 2020.10.02 |
JavaScript의 문자열에서 숫자가 아닌 모든 문자 제거 (0) | 2020.10.02 |
pip와 conda의 차이점은 무엇입니까? (0) | 2020.10.02 |
새 Android 조각을 인스턴스화하는 모범 사례 (0) | 2020.09.30 |