2016-04-17 10 views
1

我在比較了Visual Basic 2010 Express中的Strings。雖然cuting的String一起它有時會添加一個Char"",我希望是「無中生有」VB2010字符串加起來的長度加上「」

例子:

Dim text as String = "test" 
Dim sign as Char = "" 
text = text + sign 

同時調試運行它說,新的文本是"test",但如果我索要Length是5

這是一個問題,當我嘗試用其他String

Dim bigtext as String = "test1234" 
Dim text as String = "test" 
Dim sign as Char = "" 
text = text + sign 
bigtext.indexOf(text) 'should be 0 (index), but is -1 (not found) 
來比較這210

任何想法如何過濾掉""或其他解決方法?


編輯 - 我workoround現在:

現在我添加"§"隨處可見,而不是"",當我需要使用indexOf()比較的東西,我Replace("§", "")它。
(與Replace()它被刪除)

+1

http://www.dotnetperls.com/string-empty-vbnet不能複製,但 –

+0

@Fᴀʀʜᴀɴ Aɴᴀᴍ我需要的東西更像是一個'Char.Empty' – Skandix

+1

可能與在C#中,你不能有一個空字符字面值的事實...... VB是如何工作的怪異,所以可能通過使它引擎蓋下的'\ 0' – pinkfloydx33

回答

3

據我所看到的,一個可變Char總是中有一個字符(其可以是空字符)。將它連接到另一個字符串會將該字符附加到現有字符串。

我看到兩種解決方法:

  1. 使用字符串sign,而不是一個字符。該字符串可以是空的或者只有一個字符。

  2. 剪掉結果字符串的字符不期望:

    text = (text + sign).Trim(CChar(""))

+0

@ConnersFan我成功地使用了第二部分。使用字符串對我來說是不可能的。我編輯我的解決方案到問題的底部 - 只使用了一個未使用的字符 – Skandix