C#에서 다중 문자 구분 기호로 문자열을 분할하려면 어떻게 해야 합니까?
단어인 구분 기호를 사용하여 문자열을 분할하려면 어떻게 해야 합니까?
예를들면,This is a sentence
.
헤어지고 싶어요.is
그리고 구함This
그리고.a sentence
.
인Java
문자열을 구분 기호로 보낼 수 있지만, 이를 수행하려면 어떻게 해야 합니까?C#
?
http://msdn.microsoft.com/en-us/library/system.string.split.aspx
문서의 예:
string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
// ...
result = source.Split(stringSeparators, StringSplitOptions.None);
foreach (string s in result)
{
Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Regex를 사용할 수 있습니다.분할 방법은 다음과 같습니다.
Regex regex = new Regex(@"\bis\b");
string[] substrings = regex.Split("This is a sentence");
foreach (string match in substrings)
{
Console.WriteLine("'{0}'", match);
}
편집: 이것은 당신이 제시한 예를 만족시킵니다.일반 문자열입니다.스플릿은 또한 단어 "This"의 끝에 있는 "is"에서도 분할되기 때문에 Regex 방법을 사용하고 "is" 주변의 단어 경계를 포함했습니다.그러나 이 예제를 오류로 작성한 경우에는 String을 선택합니다.분할로 충분할 것입니다.
이 게시물에 대한 기존 응답을 기반으로 구현을 단순화합니다. :)
namespace System
{
public static class BaseTypesExtensions
{
/// <summary>
/// Just a simple wrapper to simplify the process of splitting a string using another string as a separator
/// </summary>
/// <param name="s"></param>
/// <param name="pattern"></param>
/// <returns></returns>
public static string[] Split(this string s, string separator)
{
return s.Split(new string[] { separator }, StringSplitOptions.None);
}
}
}
string s = "This is a sentence.";
string[] res = s.Split(new string[]{ " is " }, StringSplitOptions.None);
for(int i=0; i<res.length; i++)
Console.Write(res[i]);
편집: "is"는 문장에서 "is"라는 단어만 제거하고 "this"라는 단어는 그대로 유지하기를 원한다는 사실을 유지하기 위해 배열의 공백으로 양쪽에 패딩됩니다.
...간단히 말하면:
string[] arr = "This is a sentence".Split(new string[] { "is" }, StringSplitOptions.None);
또는 이 코드를 사용합니다. (동일: new String[] )
.Split(new[] { "Test Test" }, StringSplitOptions.None)
String을 사용할 수 있습니다.원하는 분할 문자열을 문자열에 없는 문자로 바꾼 다음 문자열을 사용합니다.같은 효과를 위해 결과 문자열을 분할하려면 해당 문자를 분할합니다.
다음은 문자열 구분 기호를 사용하여 분할하는 확장 함수입니다.
public static string[] Split(this string value, string seperator)
{
return value.Split(new string[] { seperator }, StringSplitOptions.None);
}
사용 예:
string mystring = "one[split on me]two[split on me]three[split on me]four";
var splitStrings = mystring.Split("[split on me]");
var dict = File.ReadLines("test.txt")
.Where(line => !string.IsNullOrWhitespace(line))
.Select(line => line.Split(new char[] { '=' }, 2, 0))
.ToDictionary(parts => parts[0], parts => parts[1]);
or
enter code here
line="to=xxx@gmail.com=yyy@yahoo.co.in";
string[] tokens = line.Split(new char[] { '=' }, 2, 0);
ans:
tokens[0]=to
token[1]=xxx@gmail.com=yyy@yahoo.co.in
string strData = "This is much easier"
int intDelimiterIndx = strData.IndexOf("is");
int intDelimiterLength = "is".Length;
str1 = strData.Substring(0, intDelimiterIndx);
str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength));
언급URL : https://stackoverflow.com/questions/1126915/how-do-i-split-a-string-by-a-multi-character-delimiter-in-c
'programing' 카테고리의 다른 글
NodeJs: /usr/bin/env: 노드를 설치할 수 없습니다.해당 파일 또는 디렉터리가 없습니다. (0) | 2023.05.20 |
---|---|
package.json에서 필요한 Node.js 버전을 지정하려면 어떻게 해야 합니까? (0) | 2023.05.20 |
지정된 날짜의 올바른 주 번호 가져오기 (0) | 2023.05.20 |
닙이 로드되었지만 '보기' 출구가 설정되지 않았습니다. (0) | 2023.05.20 |
파이썬의 str 성능 (0) | 2023.05.20 |