2014-03-14 2 views
0

문자열을 여러 구분 기호로 분할하고 출력에서 ​​구분 기호를 가져 오려고합니다. 예를 들어 입력 문자열이 Hello World이고 내 delimeter가 'l','o' 인 경우 문자열의 출력 배열은 "He", "l", "l", "o", " W","o","r","l","d"이어야합니다. 해당 기능이 내장되어 있습니까? String.Split에는 이러한 옵션이 없습니다. 기억, StringTokenizer 자바 에서이 옵션을했다. 제발 조언.분할 문자열 출력으로 구분 기호 가져 오기

답변

0

Regexp.Split을 사용할 수 있습니다. 예를 들어 :

Dim input As String = "Hello World"  
    Dim pattern As String = "(l)|(o)" 
    For Each result As String In Regex.Split(input, pattern) 
    Console.WriteLine("'{0}'", result) 
    Next 

Regex.Split에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

0

이 확장 방법을 참조하십시오 작동 :

public static class SplitEx 
{ 
    public static string[] SplitInline(this string text, char delimeter) 
    { 
     var results = text.Split(delimeter); 
     return 
      results 
       .Take(1) 
       .Concat(
        results 
         .Skip(1) 
         .SelectMany(x => new [] 
         { 
          Convert.ToString(delimeter), 
          x, 
         })) 
       .Where(x => !String.IsNullOrWhiteSpace(x)) 
       .ToArray(); 
    } 

    public static string[] SplitInline(this string text, string delimeters) 
    { 
     if (String.IsNullOrEmpty(delimeters)) 
     { 
      return new [] { text }; 
     } 
     else 
     { 
      var head = delimeters[0]; 
      var tail = new string(delimeters.Skip(1).ToArray()); 
      return 
       text 
        .SplitInline(head) 
        .SelectMany(x => x.SplitInline(tail)) 
        .ToArray(); 
     } 
    } 
} 

그것은 다음과 같이 사용할 수 있습니다

var text = "Hello World"; 

var result = text.SplitInline("lo"); 

다음과 같은 결과가 나타납니다.

result

관련 문제