EXAMPLE을 사용한 VB.NET 하위 문자열 방법
⚡ 스마트 요약
VB.Net 부분 문자열 예제trac시작 인덱스와 선택적 길이를 지정하여 문자열의 일부를 반환합니다. 이 메서드는 String 클래스에 속하며, 0부터 문자를 세고 원본을 변경하지 않고 완전히 새로운 문자열을 반환합니다.
하위 문자열이란 무엇입니까?
Substring 함수는 지정된 문자열의 일부를 추출하는 데 사용됩니다. 이 메서드는 String 클래스에 정의되어 있습니다. Microsoft VB.Net문자열을 추출할 시작 인덱스를 지정해야 합니다.trac테드. 문자열은 ex가 될 것입니다.trac해당 인덱스부터 지정한 길이까지 테드(ted)를 표시합니다.
전 전trac텍스트를 분석하면 Substring 메서드가 기대하는 구문을 이해하는 데 도움이 됩니다.
부분 문자열의 구문
이 함수는 다음 구문에 표시된 것처럼 두 개의 인수를 허용합니다.
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
여기
- ByVal 키워드는 함수에 인수를 전달하는 메커니즘인 값별 전달을 나타냅니다.
- start_Index는 부분 문자열을 가져올 시작 인덱스입니다.
- `sub_length`는 `start_Index`에서 문자열을 복사할 최대 길이를 나타냅니다. 이 길이는 문자 수로 측정됩니다. 함수는 결과를 반환합니다.trac테드 부분 문자열.
시작 인덱스는 0부터 시작하므로 문자열의 첫 번째 문자는 1번 위치가 아닌 0번 위치에 있습니다.
정의된 구문을 바탕으로 다음 예제는 콘솔 애플리케이션 내에서 Substring 메서드가 작동하는 방식을 보여줍니다.
예
1단계) 새 콘솔 애플리케이션을 생성합니다.
2단계) 다음 코드를 추가하세요.
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
3단계) 도구 모음에서 시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 표시될 것입니다.
우리는 다음의 코드를 사용했습니다:
설명 Code:
- Module1이라는 모듈을 만듭니다.
- 기본 하위 프로시저를 시작합니다.
- st라는 이름의 문자열 변수를 정의하고 값을 할당합니다. Guru99에 해당합니다.
- 'st'라는 문자열에서 인덱스 0부터 시작하여 길이가 4자인 부분 문자열을 가져와 'subst'라는 이름의 문자열 변수를 정의합니다.
- 일부 텍스트와 위의 하위 문자열을 콘솔에 인쇄합니다.
- 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 잠시 동안 콘솔 창을 일시 중지합니다.
- 기본 하위 프로시저가 끝납니다.
- 모듈이 종료됩니다.
하나의 인수
함수에 하나의 인수만 전달하면 어떻게 되나요? 이 함수는 해당 인덱스에서 시작하는 문자열의 모든 데이터를 복사합니다. Substring 함수는 해당 인덱스에 있는 모든 문자열 데이터뿐만 아니라 해당 인덱스를 따르는 문자열 데이터도 내부적으로 복사합니다. 예를 들어:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
시작 버튼을 클릭하여 코드를 실행합니다. 다음을 반환해야 합니다.
Substring 함수는 99를 반환했습니다. 함수에 매개변수 4를 전달했으므로, 이제부터 순차적으로 실행을 시작합니다.tract는 인덱스 4의 문자부터 문자열의 끝까지의 부분 문자열입니다. 9는 문자열의 인덱스 4에 있는 문자입니다. Guru99, 따라서 전trac거기서부터 시작되었다.
Substring 메서드는 단일 인덱스에서 문자를 잘라내는 것 외에도 문자열 중간에 있는 문자를 대상으로 지정할 수도 있습니다.
중간 문자
문제의 문자열의 중간 문자를 얻는 것도 가능합니다. 이 경우, 필요한 문자열의 시작 인덱스와 길이만 제공하면 됩니다. 다음 예에서, 우리는 인덱스 2에서 지정된 문자열의 하위 문자열을 얻고 있으며, 문자열은 2자 길이를 갖게 됩니다.
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
툴바에서 시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 나옵니다.
위 예시에서 Substring 함수는 ru를 반환했습니다. 함수에 매개변수 (2, 2)를 전달했습니다. 첫 번째 2는 함수에게 문자열 추출을 시작하라는 지시입니다.trac첫 번째 인덱스 2는 2번째 인덱스부터 부분 문자열을 반환하도록 함수에 지시하는 반면, 두 번째 숫자 2는 길이가 2자인 부분 문자열을 반환하도록 지시합니다. 즉, ex는 2번째 인덱스부터 부분 문자열을 반환합니다.trac부분 문자열 추출은 문자열의 인덱스 2에 위치한 요소부터 시작해야 합니다. Guru99는 r입니다. 반환되는 부분 문자열의 길이는 2자여야 하므로, 예시는 다음과 같습니다.trac'u'를 넘어서지 않으므로 'ru'를 반환했습니다.
하나의 문자
Substring 함수를 사용하여 문자열에서 단일 문자를 가져올 수 있습니다. 그런 경우 할당을 해야 하지만 문자에 직접 액세스할 수 있습니다. 이렇게 하면 약간 더 빠릅니다. 다음 예는 이를 달성할 수 있는 두 가지 방법을 보여줍니다.
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 나옵니다.
우리는 다음의 코드를 사용했습니다:
설명 Code:
- Module1이라는 모듈을 만듭니다.
- 기본 하위 프로시저를 시작합니다.
- st라는 이름의 문자열 변수를 정의하고 값을 할당합니다. Guru99에 해당합니다.
- mid1이라는 문자열 변수를 정의하고 문자열 st의 인덱스 1에 있는 문자를 가져옵니다. 이 문자는 mid1 변수에 할당됩니다.
- 위의 문자를 콘솔에 인쇄합니다.
- mid2라는 문자열 변수를 정의하고 String st에서 길이가 1인 인덱스 1의 문자를 가져옵니다. 길이가 1이라는 것은 시작 인덱스에서 동일한 문자를 반환한다는 의미입니다. 지정한 시작 인덱스부터 계산이 시작됩니다. 이 문자는 mid2 변수에 할당됩니다.
- 위의 문자를 콘솔에 인쇄합니다.
- 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 잠시 동안 콘솔 창을 일시 중지합니다.
- 기본 하위 프로시저가 끝납니다.
- 모듈이 종료됩니다.
편안해지면trac부분 문자열을 추출할 때, 해당 메서드가 발생시킬 수 있는 오류를 처리하는 방법을 알아두는 것이 좋습니다.
일반적인 부분 문자열 오류 및 방지 방법
Substring 메서드는 전달하는 값에 대해 엄격합니다. 인수가 문자열 범위를 벗어나면 VB.Net은 ArgumentOutOfRangeException 예외를 발생시키고 프로그램 실행을 중지합니다. 이러한 규칙을 이해하면 흔히 발생하는 이 오류를 방지할 수 있습니다.
이 메서드는 다음 세 가지 상황에서 예외를 발생시킵니다.
- start_Index는 음수입니다.
- start_Index가 문자열의 길이보다 큽니다.
- start_Index와 sub_length의 합은 문자열 끝을 넘어선 지점을 나타냅니다.
흔히 저지르는 실수 중 하나는 IndexOf 함수의 결과를 먼저 확인하지 않고 사용하는 것입니다. IndexOf 함수는 해당 문자를 찾지 못하면 -1을 반환하는데, Substring 함수에 -1을 전달하면 예외가 발생합니다. 다음 코드는 이러한 오류를 방지합니다.
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
함수 호출 전에 인덱스를 검증하면 입력 문자열에 예상 문자가 포함되어 있지 않더라도 애플리케이션이 원활하게 실행됩니다.
문자 앞이나 뒤의 부분 문자열 가져오기
일반적인 작업은 다음과 같습니다.trac특정 문자 앞이나 뒤에 나타나는 텍스트를 추출하는 경우, 예를 들어 이메일 주소를 '@' 기호를 기준으로 분할하는 경우입니다. VB.Net에서는 이를 위한 전용 함수를 제공하지 않지만, IndexOf와 Substring을 조합하여 원하는 결과를 얻을 수 있습니다.
문자 앞의 텍스트: IndexOf를 호출하여 문자를 찾은 다음, 해당 인덱스를 길이로 Substring에 전달합니다.
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
이 코드는 '@' 기호 앞에 있는 문자열 부분인 'guru99'를 출력합니다.
문자 뒤의 텍스트: 인덱스에 1을 더하고 Substring 함수가 문자열의 끝까지 실행되도록 합니다.
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
이 함수는 example.com을 반환합니다. 문자가 두 번 이상 나타나는 경우, 처음 나타나는 문자가 아닌 마지막 나타나는 문자부터 시작하려면 IndexOf 대신 LastIndexOf를 사용하십시오.
부분 문자열 vs. 왼쪽, 오른쪽 및 중간 함수
Visual Basic은 이전 버전에서 사용되던 Left, Right, Mid라는 세 가지 레거시 문자열 함수를 계승합니다. 이 함수들은 다음 위치에 있습니다. Microsoft.VisualBasic 네임스페이스를 사용하므로 기존 VB 개발자에게 더 친숙하게 느껴질 수 있습니다.
- 왼쪽(문자열, n) 문자열의 처음 n개 문자를 반환합니다.
- 오른쪽(문자열, n) 문자열의 마지막 n개 문자를 반환합니다.
- 중간(문자열, 시작, 길이) Substring과 마찬가지로 시작 위치에서부터의 일부를 반환합니다.
두 함수의 가장 큰 차이점은 위치를 세는 방식입니다. `Mid` 함수는 1부터 시작하므로 첫 번째 문자가 1번째 위치에 오는 반면, `Substring` 메서드는 0부터 시작합니다. `Substring`은 표준 .NET 방식이며 모든 .NET 언어에서 동일하게 동작하므로 새 코드를 작성할 때 권장됩니다. `Left`, `Right`, `Mid` 함수는 기존 Visual Basic 프로젝트를 관리할 때 사용하세요.






