2016-06-09 49 views
1

我遇到了我分配給Visual Basic 2012課程的問題。說明如下。到目前爲止,我只顯示輸入的名字,沒有別的。我怎樣才能讓它顯示所請求的序列中的名字和姓氏?如何使用字符串以不同順序顯示名稱?

String問題:在文本框中輸入您的名字和姓氏。取名稱並將其顯示在顯示姓氏,名字的標籤框中。

文本框輸入:李四

標籤框:DOE,簡

我到目前爲止的代碼如下。謝謝你的幫助!

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 
    Dim fullname As String 
    Dim firstname As String 
    Dim indexnum As Integer 
    Dim lastname As String 

    fullname = fulltextbox.Text 

    indexnum = fullname.IndexOf(" ") 

    firstname = fullname.Substring(0, indexnum) 

    firstlabel.Text = firstname 
    fulltextbox.Focus() 
End Sub 

Private Sub fulltextbox_TextChanged(sender As Object, e As EventArgs) 
    firstlabel.Text = String.Empty 

    fulltextbox.SelectAll() 
End Sub 

Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click 
    Me.Close() 
End Sub 
+0

單擊按鈕時標籤是否應該更改? –

回答

0

你是在正確的軌道上,首先確定在空間位於:

indexnum = fullname.IndexOf(" ") 

現在基於該指標,可以將字符串分割成兩個字符串,firstnamelastname

firstname = fullname.Substring(0, indexnum) 
lastname = fullname.Substring(indexnum+1) 

您需要使用indexnum+1而不是indexnum,否則您將包含間距字符。

最後,你組在一起再次使用string concatenation operator (&)

firstlabel.Text = lastname & ", " & firstname 

的最後一個方法因而看起來像:

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 
    Dim fullname As String 
    Dim firstname As String 
    Dim indexnum As Integer 
    Dim lastname As String 

    fullname = fulltextbox.Text 

    indexnum = fullname.IndexOf(" ") 

    firstname = fullname.Substring(0, indexnum) 
    lastname = fullname.Substring(indexnum+1) 

    firstlabel.Text = lastname & ", " & firstname 
    fulltextbox.Focus() 
End Sub 
0

注意,這也不會,如果你的使用中工作縮寫。此外,我會從刪除fulltextbox.SelectAll()

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 

    Dim Names() As String = fulltextbox.Text.Split(" "c) 

    If Names.Count = 2 Then 
     firstlabel.Text = Names(1) + ", " + Names(0) 
    ElseIf Names.Count = 0 Then 
     MessageBox.Show("Please enter name.") 
    Else 
     MessageBox.Show("Invalid Nmae entered.") 
    End If 

    fulltextbox.Text = "" 

End Sub 
+0

這一個沒有工作,因爲Option Strict On不允許從字符串到字符的隱式對話,但感謝您花時間回答! –

+0

我修好了。 'Dim Names()As String = fulltextbox.Text.Split(「」c) ' –

相關問題