EXAMPLE을 사용한 VB.NET 하위 문자열 방법

⚡ 스마트 요약

VB.Net 부분 문자열 예제trac시작 인덱스와 선택적 길이를 지정하여 문자열의 일부를 반환합니다. 이 메서드는 String 클래스에 속하며, 0부터 문자를 세고 원본을 변경하지 않고 완전히 새로운 문자열을 반환합니다.

  • 🔢 0부터 시작하는 인덱스: Substring 메서드는 인덱스 0부터 문자를 세므로 문자열의 첫 번째 문자가 0번째 위치에 있습니다.
  • ☑️ 두 번의 과부하: 인수를 하나만 전달하면 해당 인덱스부터의 모든 내용이 반환되고, 두 개를 전달하면 고정된 개수의 문자가 반환됩니다.
  • ✂️ Extrac위치별 t: 특정 문자 앞이나 뒤의 텍스트를 추출하려면 Substring 함수를 IndexOf 또는 LastIndexOf 함수와 함께 사용하십시오.
  • ⚠️ 안전한 인덱싱: 음수이거나 범위를 벗어난 인덱스는 ArgumentOutOfRangeException을 발생시키므로 메서드를 호출하기 전에 값을 검증해야 합니다.
  • 🔤 변경 불가능한 결과: 부분 문자열은 새 문자열을 반환하고 원본 문자열은 변경하지 않으며, 이는 .NET 문자열의 불변성과 일치합니다.
  • 🤖 AI 지원: GitHub Copilot 및 IntelliCode Visual Studio 2026에서는 입력하는 동안 올바른 부분 문자열 호출을 제안하고 범위를 벗어난 인덱스를 표시합니다.

VB.Net 부분 문자열

하위 문자열이란 무엇입니까?

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단계) ​​도구 모음에서 시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 표시될 것입니다.

VB.Net 부분 문자열 예제 출력

우리는 다음의 코드를 사용했습니다:

VB.Net 부분 문자열 코드 예제

설명 Code:

  1. Module1이라는 모듈을 만듭니다.
  2. 기본 하위 프로시저를 시작합니다.
  3. st라는 이름의 문자열 변수를 정의하고 값을 할당합니다. Guru99에 해당합니다.
  4. 'st'라는 문자열에서 인덱스 0부터 시작하여 길이가 4자인 부분 문자열을 가져와 'subst'라는 이름의 문자열 변수를 정의합니다.
  5. 일부 텍스트와 위의 하위 문자열을 콘솔에 인쇄합니다.
  6. 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 잠시 동안 콘솔 창을 일시 중지합니다.
  7. 기본 하위 프로시저가 끝납니다.
  8. 모듈이 종료됩니다.

하나의 인수

함수에 하나의 인수만 전달하면 어떻게 되나요? 이 함수는 해당 인덱스에서 시작하는 문자열의 모든 데이터를 복사합니다. 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

시작 버튼을 클릭하여 코드를 실행합니다. 다음을 반환해야 합니다.

VB.Net에서 하나의 인수를 받는 부분 문자열

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

툴바에서 시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 나옵니다.

VB.Net 부분 문자열 중간 문자

위 예시에서 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

시작 버튼을 클릭하여 코드를 실행합니다. 다음과 같은 결과가 나옵니다.

VB.Net 부분 문자열 단일 문자 출력

우리는 다음의 코드를 사용했습니다:

VB.Net 부분 문자열 단일 문자 코드

설명 Code:

  1. Module1이라는 모듈을 만듭니다.
  2. 기본 하위 프로시저를 시작합니다.
  3. st라는 이름의 문자열 변수를 정의하고 값을 할당합니다. Guru99에 해당합니다.
  4. mid1이라는 문자열 변수를 정의하고 문자열 st의 인덱스 1에 있는 문자를 가져옵니다. 이 문자는 mid1 변수에 할당됩니다.
  5. 위의 문자를 콘솔에 인쇄합니다.
  6. mid2라는 문자열 변수를 정의하고 String st에서 길이가 1인 인덱스 1의 문자를 가져옵니다. 길이가 1이라는 것은 시작 인덱스에서 동일한 문자를 반환한다는 의미입니다. 지정한 시작 인덱스부터 계산이 시작됩니다. 이 문자는 mid2 변수에 할당됩니다.
  7. 위의 문자를 콘솔에 인쇄합니다.
  8. 사용자가 콘솔 창을 닫는 작업을 수행할 때까지 잠시 동안 콘솔 창을 일시 중지합니다.
  9. 기본 하위 프로시저가 끝납니다.
  10. 모듈이 종료됩니다.

편안해지면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 프로젝트를 관리할 때 사용하세요.

자주 묻는 질문

네. Substring 메서드는 0부터 시작하므로 문자열의 첫 번째 문자는 인덱스 0, 두 번째 문자는 인덱스 1 등에 해당합니다. 시작 위치를 계산할 때 0부터 세는 것이 중요합니다.

아니요. VB.Net의 문자열은 불변(immutable)이므로 Substring 메서드는 원래 문자열을 변경하지 않습니다. 이 메서드는 제외된 문자열을 포함하는 완전히 새로운 문자열을 반환합니다.trac문자로 변환되지만 원본 문자열은 원래 값을 그대로 유지합니다.

부분 문자열 예trac인덱스와 길이를 사용하여 문자열의 연속된 부분을 찾습니다. 스플릿 쉼표나 공백과 같은 구분 기호가 나타나는 곳에서 문자열을 더 작은 문자열 배열로 분할합니다. 리스트에는 Split을, 슬라이스에는 Substring을 사용하세요.

길이가 0인 값을 전달하면 Nothing이 아닌 빈 문자열(“”)이 반환됩니다. 시작 인덱스가 문자열의 범위 내에 있는 한 호출은 유효하며 예외가 발생하지 않습니다.

`substring` 메서드는 지정한 부분만 남기고 나머지는 버립니다. `remove` 메서드는 이와 반대로, 지정된 인덱스부터 문자를 삭제하고 남은 문자열을 반환합니다. 이 두 메서드는 상호 보완적인 연산입니다.

네. 공백, 탭, 구두점은 모두 부분 문자열 메서드가 시작 인덱스와 길이를 계산할 때 하나의 문자로 간주됩니다. 보이는 문자뿐만 아니라 공백을 포함한 문자열의 모든 위치가 계산에 포함됩니다.

예. GitHub 부조종사 Visual Studio 2026에서는 ex와 같은 일반 영어 주석을 변환합니다.trac쉼표 앞의 텍스트를 IndexOf를 사용한 부분 문자열 호출로 변환합니다. 생성된 인덱스가 범위 내에 있는지 항상 확인하십시오.

예. Visual Studio 2026은 GitHub Copilot과 함께 사용할 수 있습니다. 인텔리Code 범위를 벗어난 인덱스를 표시하고, 올바른 인수를 제안하며, 입력하는 동안 부분 문자열 호출을 완료하도록 도와줍니다.ping 프로그램을 실행하기 전에 ArgumentOutOfRangeException 예외가 발생하는 것을 방지합니다.

이 게시물을 요약하면 다음과 같습니다.