2009-10-28 6 views
0
Dim myDelims As String() = New String() {"<beginning of record>"} 
    Dim split1 As String() = temp_string.Split(myDelims, StringSplitOptions.None) 

    For Each s As String In split1 
     If InStr(s, lot__no) Then 

어떤 이유로 split1의 첫 번째 값은 ""입니다. 거기에는 아무것도 없다. 첫 번째 요소 전에 왜 시작하나요?vb.net : 왜 이것이 0에서 시작하나요?

+0

다시 같은 질문을 할 필요가 없습니다. http : //stackoverflow.com/questions/1640279/vb-net-in-which-case-would-this-return-0 – TStamper

+0

temp_string이 "<시작 부분 record> "라고 입력하면 예상 결과가됩니다. 그렇습니까? – jdigital

+0

이것은 같은 질문이 아닙니다. 그것은 다른 것을 요구하고 있습니다. –

답변

1

빈 문자열을 걸러 내려면 StringSplitOptions.RemoveEmptyEntries을 전달해야합니다.

기본적으로 String.Split 메서드는 문자열을 구분 기호로 나눕니다. 문자열이 구분 기호로 시작하면 기본적으로 빈 문자열, 구분 기호 및 문자열의 나머지 부분으로 구성됩니다. 이 예에서

Dim s = "!Hello!World!" 
Dim delimiters = {"!"} 
Dim arr = s.Split(delimiters, StringSplitOptions.RemoveEmptyEntries) 
Array.ForEach(arr, AddressOf Console.WriteLine) ' // Prints out the result 

, arr는 "안녕하세요"와 "세계"두 가지 요소가 포함됩니다. RemoveEmptyEntires이 없으면 "", "Hello", "World"및 ""네 개의 요소가 포함됩니다.

+0

죄송합니다. 예를 들자면 –

+0

완벽한 감사합니다. –

관련 문제