簡體   English   中英

VB.NET:在for循環中將字符串轉換為dec

[英]VB.NET: Convert string to dec in a for-loop

因此,我想從此表中將字符串轉換為dec值: http : //en.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange#ASCII-Table

例如, "hello"應為104101108108111然后(h = 104,e = 101 ...)。 好吧,我必須為此使用一個for循環,但似乎無法得到錯誤。

Private Function function1(text As String)
    Dim dec As String
    Dim i As Integer = 0

    For i = 0 To text.Length
        dec = dec & System.Text.ASCIIEncoding.ASCII.GetBytes(text)(i)
        i += 1
    Next
    Return dec
End Function

它可以工作,但是如果“文本”的長度是偶數(例如,文本有2、4、6或8個字母),則會給我一個錯誤。 並且當它不均勻時(文本有1、3、5、7個字母),它只會轉換這些不均勻的字母。 因此,僅作為示例。 “ hello”的長度不均勻(5個字母)。 因此,它不會給我一個錯誤。 大! 但是,它僅將“ h”,第一個“ l”和“ o”轉換為dec。

誰能解釋我為什么以及如何解決這個問題?

您正在循環中增加計數i 您無需在For循環中執行此操作。

另外,您將經過字符串的末尾。 您需要以Length - 1結束循環

Private Function function1(text As String) As String
    Dim dec As String = ""
    For i As Integer = 0 To text.Length - 1
        dec = dec & System.Text.ASCIIEncoding.ASCII.GetBytes(text)(i)
    Next
    Return dec
End Function

注意:嚴格啟用選項-從長遠來看,您一定會很高興!

循環自身增加,不增加。 它是從零開始的數組,因此14長度的文本為0 to 13

Private Function function1(text As String)
 Dim dec As String = ""
 For i As Integer = 0 To text.Length - 1
    dec = dec & System.Text.ASCIIEncoding.ASCII.GetBytes(text(i))(0)
    'i += 1 omit this part
 Next
 Return dec
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM