VB.NET - 문자열에 "value1" 또는 "value2"가 포함된 경우
문자열에 "value1" 또는 "value2"가 포함되어 있는지 어떻게 확인할 수 있는지 궁금합니다.시도해 봤습니다.
If strMyString.Contains("Something") Then
End if
이것은 작동하지만, 이것은 작동하지 않습니다.
If strMyString.Contains("Something") or ("Something2") Then
End if
이로 인해 문자열에서 Long으로 변환할 수 없다는 오류가 발생합니다.만약에 제가.or ("Something2")
첫 번째 괄호 안에 문자열을 부울로 변환할 수 없다는 오류가 있습니다.
그렇다면 너무 많은 코드를 쓸 필요 없이 문자열에 "string1" 또는 "string2"가 포함되어 있는지 어떻게 확인할 수 있습니까?
다음과 같이 해야 합니다.
If strMyString.Contains("Something") OrElse strMyString.Contains("Something2") Then
'[Put Code Here]
End if
이것이 필요합니다.
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
'Code
End if
이미 제공된 답변 외에도 다음을 사용하면 더 빨라집니다.OrElse
대신에Or
두 번째 테스트가 단락되었기 때문입니다.이는 한 문자열이 다른 문자열보다 먼저 위치할 가능성이 높다는 것을 알고 있는 경우 특히 그렇습니다.
If strMyString.Contains("Most Likely To Find") OrElse strMyString.Contains("Less Likely to Find") Then
'Code
End if
다음은 특정 문자열에 미리 정의된 문자열이 포함되어 있는지 확인하는 대체 솔루션입니다.그것은 사용합니다.IndexOf
기능:
'this is your string
Dim strMyString As String = "aaSomethingbb"
'if your string contains these strings
Dim TargetString1 As String = "Something"
Dim TargetString2 As String = "Something2"
If strMyString.IndexOf(TargetString1) <> -1 Or strMyString.IndexOf(TargetString2) <> -1 Then
End If
참고: 이 솔루션은 Visual Studio 2010에서 테스트되었습니다.
당신은 가지고 있다("Something2")
자체 - 부울이 반환되도록 테스트해야 합니다.
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
If strMyString.Contains("Something") or strMyString.Contains("Something2") Then
End if
이 오류는 컴파일러가 사용자가 비트 단위로 수행하기를 원한다고 생각함을 나타냅니다.OR
부울 및 문자열에 표시됩니다.물론 효과가 없을 것입니다.
텍스트가 대문자인지 소문자인지 여부를 무시하려면 다음을 사용합니다.
If strMyString.ToUpper.Contains("TEXT1") OrElse strMyString.ToUpper.Contains("TEXT2") Then
'Something
End if
If strMyString.Tostring.Contains("Something") or strMyString.Tostring.Contains("Something2") Then
End if
저는 다른 방식으로 접근해 왔습니다.나는 true 또는 false를 단순히 반환하는 함수를 만들었습니다.용도:
필드에 ("A;B;C"), MyFieldVariable,참|거짓) 그러면
..어떻게 좀 해봐.
종료할 경우
Public Function FieldContains(Searchfor As String, SearchField As String, AllowNulls As Boolean) As Boolean
If AllowNulls And Len(SearchField) = 0 Then Return True
For Each strSearchFor As String In Searchfor.Split(";")
If UCase(SearchField) = UCase(strSearchFor) Then
Return True
End If
Next
Return False
End Function
흥미롭게도 이 솔루션은 고장날 수 있지만 해결 방법은 다음과 같습니다.호출된 내 데이터베이스를 찾는 중KeyWorks.accdb
존재해야 하는 항목:
실행:
Dim strDataPath As String = GetSetting("KeyWorks", "dataPath", "01", "") 'get from registry
If Not strDataPath.Contains("KeyWorks.accdb") Then....etc.
데이터베이스 이름이 지정된 경우KeyWorksBB.accdb
,그If
진술서는 이것이 수용 가능함을 발견하고 종료할 것입니다.If
그것이 실제로 발견했기 때문에 진술.KeyWorks
그리고.accdb
.
만약 내가 포위한다면,If
같은 작은 따옴표를 사용한 문장 한정자'KeyWorks.accdb'
이제 모든 연속된 문자를 순서대로 찾고 입력합니다.If
일치하지 않으므로 차단합니다.
언급URL : https://stackoverflow.com/questions/6370081/vb-net-if-string-contains-value1-or-value2
'programing' 카테고리의 다른 글
앱스토어에서 애플리케이션에 대한 올바른 'aps-environment' 자격 문자열을 찾을 수 없습니다. (0) | 2023.05.23 |
---|---|
UI 탐색 모음에 단추를 추가하는 방법은 무엇입니까? (0) | 2023.05.23 |
제공된 잠금이 잘못되었습니다.잠금이 만료되었거나 메시지가 대기열에서 이미 제거되었습니다. (0) | 2023.05.23 |
VB.NET에서 Enter 키를 누르는 중 (0) | 2023.05.23 |
WPF를 사용하여 레이블에서 텍스트를 랩핑하려면 어떻게 해야 합니까? (0) | 2023.05.23 |