programing

C#에서 다중 문자 구분 기호로 문자열을 분할하려면 어떻게 해야 합니까?

showcode 2023. 5. 20. 11:02
반응형

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

반응형