2014-01-06 3 views
2

ReDim 메서드를 다루는 Visual Basic (VB.Net)에서 조인 메서드 String Manipulation을 사용하는 것과 관련된이 연습에서는 약간의 도움이 필요합니다.Join 메서드 String 조작 Visual Basic

목표는 입력 상자를 사용하는 프로그램을 만드는 것입니다.

입력 상자는 루프 여야하며 지정된 명령을 눌러 제한에 도달 할 때까지 한 번에 한 단어 씩 표시합니다.

간단히 말해서 고정 루프는 없으며 사용자가 얼마나 많은 루프를 처리했는지에 따라 달라집니다.

일단 완료되면 조인 방법은 사용자 입력 수에 따라 작동합니다. 예 : "Hello + Hi + testing + one + two + three + four + five"

여기까지 지금까지 알아낼 수없는 코드가 있습니다.

Dim inputtext As String 
    Dim counter As Integer 
    Dim language() As String 


Do Until inputtext = "." 
     inputtext = InputBox("Enter the language as many as you can") 
     MsgBox(inputtext) 
     counter = counter + 1 
    Loop 

    ReDim Preserve language(inputtext) 


    inputtext = String.Join("+", language) 
    MsgBox(inputtext.ToString) 
+0

가 특별히'ReDim'있는 솔루션을 찾고 있습니까 : 서로 다른 경우에도 종료 값을 테스트 만 추가해야합니까? 더 나은 대안은 일반적인 문자열 목록을 사용하는 것입니다. – Neolisk

+0

예 ReDim에 대한 솔루션,하지만 코드를 넣을 수있는 유일한 방법을 목적으로 이해하고 수집 된 선언 된 배열의 지우기 않도록 "보존"추가해야합니다. – jamescv31

+0

Redim 보존은 메모리가 비효율적입니다. 문자열 목록은 메모리 효율적입니다. 너의 선택이야. – Neolisk

답변

0

당신의 설명을 따라 난 당신이 다음과 같다 필요가 무엇이라고 생각 : 내가 당신 Do..Until 코드 블록을 업데이트 한 참조하십시오.

Dim inputtext As String="" 
    Dim counter As Integer =0 
    Dim language(0) As String 


Do Until inputtext = "." 
     inputtext = InputBox("Enter the language as many as you can") 
     ReDim Preserve language(UBound(language) + 1) 
     language(counter) = inputtext 
     MsgBox(inputtext) 
     counter = counter + 1 

    Loop 

    ' ReDim Preserve language(inputtext) 


    inputtext = String.Join("+", language) 
    MsgBox(inputtext.ToString) 
+0

답장을 보내 주셔서 감사합니다.하지만 언어 코드 (카운터)에 null 오류가 있습니다. 반복문에 입력 텍스트가 있습니다. – jamescv31

+0

잠시 기다려주십시오. 편집 중입니다. –

+0

'language' 배열을 초기화하지 않았기 때문에 이것은 작동하지 않습니다. 대신'List '을 사용하지 않으시겠습니까? 런타임시 요소를 추가 할 때 훨씬 쉽게 작업 할 수 있습니다. –

0

당신은 그렇지 않으면 당신은 마지막 값을 추가합니다, 배열을 REDIM 루프 내부 inputtext을 추가해야합니다.

Dim inputtext As String 
Dim counter As Integer 
Dim language() As String 

Do Until inputtext = "." 
    inputtext = InputBox("Enter the language as many as you can") 
    If inputtext <> "." Then 
     MsgBox(inputtext) 
     ReDim Preserve language(counter) 
     language(counter) = inputtext 
     counter = counter + 1 
    End If 
Loop 

inputtext = String.Join("+", language) 
MsgBox(inputtext.ToString) 

+0

해결책 주셔서 감사합니다, 잘 작동합니다 :) 이런 종류의 문자열 조작에 대해 더 많은 발전을 검토해야합니다. – jamescv31