2013-10-10 3 views
0

나는 다른 문자열에서 문자열을 제거하고 사용자가 원하는 무엇을 적 문자열로 대체하도록 설계된 간단한 함수 (또는 기본값으로 더 문자열)VB.net 기능 반환 일관성없는 결과

Private Function RemoveString(scontainer As String, Optional rcontainer As String = "", Optional rstring As String = "") As String 
    Dim container As String = scontainer 
    Dim tcontainer As String 

    If InStr(container, rcontainer) <> 0 Then 
     Do While (InStr(container, rcontainer) <> 0) 
      tcontainer = Microsoft.VisualBasic.Left(container, InStr(container, rcontainer) - 1) 
      tcontainer = tcontainer & rstring & Microsoft.VisualBasic.Right(container, (Len(container) - (InStr(container, rcontainer) + 2))) 
      container = tcontainer 
     Loop 

     RemoveString = container 'return modded string 
    Else 
     RemoveString = scontainer 'return string as is 
    End If 
End Function 

을 생성 문제는 다음과 같습니다. 이것은 일반적인 사용 기능이라고 생각하지만 실제로는 2 개의 다른 문자열과 관련이 있어야합니다.

% 20 amp;

이 함수는 % 20 상황에서는 완벽하게 작동하지만 앰플리파이어에는 세미콜론이 뒤에 있습니다. 끈. 왜 이런 생각일까요?

+1

봐 것 resultString 문자열 (문자열로 문자열, NEWVALUE으로 oldValue입니다)이 선 후

Dim startString as String = "%20 amp;" Dim resultString as String = startString.Replace("%20 ",String.Empty) resultString = resultString.Replace(";",String.Empty) 

을하려면 string.replace를 사용할 수있는 경우 , rcontainer) + 2' - 왜 여기서 2를 사용하고 있습니까? –

+0

내가 내 탐구를 타이핑 할 때 나는 아마도 그것이 작동하지 않는 이유를 깨달았다. – gNerb

+1

또한'String.Replace'를 사용하여보아야합니다 ... –

답변

1

맞습니까? 문자열의 특정 문자 시퀀스를 다른 문자 시퀀스로 바꾸거나 그냥 삭제하려고합니다.

경우 먹으 렴 당신은 "A"`InStr을 (용기에서

+0

아니요. 정확히 설명하려고했던 것이 아니지만 제 잘못이에요. 즉, 당신의 대답은 제가 솔루션에 기여한 사실을 알지 못하는 정보 조각을 제공했습니다 (string.replace 메소드). 그리고 그것을 가져 오는 첫 번째 사람이 답변을 게시하지 않았기 때문에, 너의 것을 답으로 표시해. – gNerb

관련 문제