2010-07-09 6 views
3

0-25의 인덱스가 포함될 A-Z에서 문자열 배열을 만들었습니다.배열에서 다중 인덱스 값 가져 오기

텍스트 상자가 있고 텍스트 상자에 텍스트를 입력하면 입력 한 텍스트와 연관된 배열의 인덱스 번호를 어떻게 얻을 수 있습니까?

예를 들어, 나는 텍스트 상자에 "AB"를 입력하고, 인덱스 수익률은 0과 1

아래 코드 만 나는 단지 하나 개의 문자 알파벳을 입력하면 인덱스를 반환 할 수 있어야한다. 많은 알파벳의 색인 번호를 반환하려면 어떻게합니까?

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 

    Dim abc(25) As String 
    abc(0) = "a" 
    abc(1) = "b" 
    abc(2) = "c" 
    abc(3) = "d" 
    abc(4) = "e" 
    abc(5) = "f" 
    abc(6) = "g" 
    abc(7) = "h" 
    abc(8) = "i" 
    abc(9) = "j" 
    abc(10) = "k" 
    abc(11) = "l" 
    abc(12) = "m" 
    abc(13) = "n" 
    abc(14) = "o" 
    abc(15) = "p" 
    abc(16) = "q" 
    abc(17) = "r" 
    abc(18) = "s" 
    abc(19) = "t" 
    abc(20) = "u" 
    abc(21) = "v" 
    abc(22) = "w" 
    abc(23) = "x" 
    abc(24) = "y" 
    abc(25) = "z" 

    Dim result = abc.Where(Function(a) a.Contains(TextBox2.Text)).Select(Function(s) Array.IndexOf(abc, s)).ToArray() 

    Dim x As Integer 
    For Each x In result 
     MsgBox(x) 
    Next 

End Sub 

답변

0

가장 먼저 떠오르는 것은 텍스트 배열의 .split 메서드를 사용하여 문자 배열을 얻는 것입니다. 배열의 각 요소에 대한 검색을 수행하고 각 일치 항목을 결과 배열에 추가합니다.

0

이 접근 방법은 여러 가지가 있습니다.

하나의 솔루션 :

1) 번호를 (그리고 제공하는 메시지

Dim c As Char 
For Each c In theText 
    MsgBox(translateCharacter(c)) 
Next 

Public Function translateCharacter(ByVal c As Char) As Integer 
    translateCharacter = abc.Where(Function(a) a.Contains(c)).Select(Function(s) Array.IndexOf(abc, s)).ToArray() 
End Function 

로 표시, 텍스트의 각 문자에 대한 텍스트

Dim theText = TextBox2.Text 

2

를) 가져 오기 컴파일하면 각 숫자가 하나씩 차례로 팝업됩니다. 문자를 번역 할 때 사용했던 함수와 동일한 함수를 사용했습니다 (즉, 결과 얻기). 다른 방법이 있습니다. 질문은 문자열의 모든 문자를 반복 할 수 있다는 것을 지적합니다. 나는 희망이 도움이

,

--gMale

1

집계하고 완벽하게 실행 :

Module Module1 

    Sub Main() 

     Test("Leniel") 

    End Sub 
    Sub Test(ByVal text As String) 

     Dim alphabet() As String = {"a", "b", "c", "d", "e", 
            "f", "g", "h", "i", "j", 
            "k", "l", "m", "n", "o", 
            "p", "q", "r", "s", "t", 
            "u", "v", "w", "x", "y", "z"} 

     Dim indexes = From letter In text.ToCharArray() _ 
      Select Array.IndexOf(alphabet, letter.ToString().ToLower()) 

     Dim i As Integer 
     For Each i In indexes 
      MsgBox(i) 
     Next 

    End Sub 

End Module 

그것은 각각 메시지 상자에 표시됩니다 :

'l e n i e l 
11, 4, 13, 8, 4, 11 
관련 문제