2011-09-17 153 views
2

在開發過程中,我一直在我的程序中遇到了一個小故障。經過一番調查,顯示我的一個字符串變量顯然不是它所說的。字符串不等於字符串?

讓我們來看看:

enter image description here

現在我編輯的照片,所以你可以看到MSGBOX(這通常不會出現,直到下一行,我想表明它緊鄰顯示cT =「狗」的提示)。

現在,我的cT變量被廢棄並從我製作的垃圾服務器發送的流中讀取。有沒有辦法將cT完全轉化爲它所說的?它說這是「狗」,但有些東西告訴我有一些隱藏的字節或沒有顯示。眼見爲「狗」!=「狗,這是否任何意義?

感謝您的幫助,您可以提供,在這一點上,我百思不得其解。我可能會去打一些門戶網站。

編輯:門戶網站剛剛墜毀,糟糕的一天,我想:/

編輯,這裏是一些代碼:

Dim cT As String = msg.Split("|")(4).Trim.ToLower 
MsgBox(cT.Length) 
Dim oct As String = Name.ToLower() 
If StrConv(oct, VbStrConv.Lowercase).Contains(StrConv(cT, VbStrConv.Lowercase)) Then 
    msend.nMessage(msg.Split("|")(2).Trim & " > All", msg.Split("|")(3)) 
End If 

我使用VB.net使所有的.NET的答案是可以接受

+0

您是否嘗試過使用['String.Equals()'](http://msdn.microsoft.com/en-us /library/858x0yyx.aspx#Y0)(ie:'cT.Equals(「dog」)')而不是? – NullUserException

+0

@NullUserException我現在就試一試。 **結果**:不,實際上它也不以那種方式工作。 – FreeSnow

+1

'cT.Length =「dog」.Length'? – NullUserException

回答

2

cT中可能有一些不可見的字符,如13,10或0。要了解什麼是真正的字符串CT中,使用測試代碼是這樣的:

For i = 0 To cT.Length - 1 
    MsgBox(Asc(cT.Chars(i))) 
Next i 
+0

我們已經確定它確實包含不應該顯示的字符,我該如何刪除它們? – FreeSnow

+1

它們可能是<32的字符。如果是這樣,請刪除小於32的值。 – xpda

2

是否有嵌入的換行符,退格或什麼東西?這可能會導致所見即所得(不)WYG問題...

+0

我們已經確定它包含不應該顯示的字符,我該如何刪除它們? – FreeSnow