2012-12-04 3 views
2

- 문자를 기반으로 문자열을 분할하고 - 문자 전후의 단어를 목록 (result)으로 삽입하려고합니다. 색인. 내가 성취하고자하는 것은 문자 - 앞뒤에 공백이 있는지 확인하는 것입니다. 발견 된 공간이 있으면 앞에서 설명한대로 분할을 수행하십시오. 그렇지 않으면 - 전후에 공백이 없으면 분할을 수행하지 마십시오.문자열 분리를 수행 할 문자 앞뒤에 공백이 있는지 확인하십시오.

예 :

문자열 1 = 런던 - 영국

문자열 2 = 파리 - 프랑스

분할 String1 및 전 공간이 있기 때문에 result 목록에 index(1)index(0)LondonUnited Kingdom를 삽입 -

분할하지 마십시오 String 2 및 전후에 공백이 없으므로 Paris-Franceindex(0)으로 삽입하십시오.

코드 :

 Dim result As New List(Of String)() 

     For Each str_get As String In Split 

      If (str_get.IndexOf("\t-\t")) Then 

       Dim splitStr = str_get.Split({"-", "/"}, StringSplitOptions.None) 

       For Each str_split As String In splitStr 'Add to result list 

        result.Add(str_split.Trim()) ' Enter into result list 

        ' result.TrimExcess() 
       Next 

      Else 


      End If 

Split 문자열 배열로 간주 될 수있는 문자열입니다. For 루프는 해당 배열의 각 문자열을 가져 와서 확인합니다.

의견이나 제안이 있으십니까?

답변

3

"-" 대신 " - "으로 나누기 만하면됩니다. 그것은 작동합니다

편집 :

좋아, 단지 String.Split의 (a String 분리로) 그런 식으로 작동하지 않습니다

이 작동하는지 확인 :

splitStr = Regex.Split(str_get, " - ")

Demo on Ideone

+0

을 테스트 할 텍스트 문자열입니다

If Instr(DataToTest, " - ") > 0 Then 'contains the space hyphen space values Else 'does not contain space hyphen space End If 

, 당신이 그물의 사항 String.split를 사용하는 – HShbib

+0

를 작동하지 않는 이유는 무엇입니까? – Teejay

+0

예, .Net String.Split을 사용하고 있습니다. – HShbib

0
이 시도

: - 대신

Dim splitStr = str_get.Split({" - ", "/"}, StringSplitOptions.None) 

을 : -

Dim splitStr = str_get.Split({"-", "/"}, StringSplitOptions.None) 
+0

작동하지 않았습니다. 시도했습니다. – HShbib

0

내가 귀하의 요구 사항을 이해한다면 : 텍스트가 포함 된 경우

Dim splits = From str In strings 
      Let parts = str.Split({" - "}, StringSplitOptions.RemoveEmptyEntries) 
      Select parts.ToList() 
Dim result As List(Of List(Of String)) = splits.ToList() 
0

알아하기를 "-"우주 하이픈 인 SPACE를 사용하면이 문장으로 간단하게 테스트 할 수 있습니다.DataToTest 당신은 내가 공백을 넣을 경우에도

관련 문제