2015-04-27 20 views
0

我有一個只能存儲值的程序。它的工作方式是在字符串的開始處添加一個值並刪除位於分數末尾的值。我已將這些值保存的格式爲000 000 000(Name)。這是我的碼。一個字符串.remove錯誤

dim bb as string 
dim lon as string 
For Each ch As Char In bb 
    If Char.IsDigit(ch) Then 
    lon = String.Concat(lon & ch) 
    End If 
Next 
Select Case lon.Length 
    Case Is = 9 
    ListBox1.Items.Clear() 
    ListBox1.Items.AddRange(c11) 
    bb = ListBox1.Items(i) 
    bb.Remove(8, 11) 
    ListBox1.Items(i) = "00" & score & " " & bb 
    If ListBox1.Items(i).Contains("0010")   Then 
     bb = ListBox1.Items(i) 
     bb.Replace("0010", "010") 
      ListBox1.Items(i) = bb 
    End If 

該程序在bb.remove(8,10)行中斷。它應該工作,但它沒有。它提出了一個錯誤的論點。 任何幫助,將不勝感激。

+0

BB沒有被設置的值...你試圖把一個破發點上這在調試模式?對於每個ch as char在bb中,我懷疑是無所事事...... –

+0

'String.Remove(8,11)'將從索引8開始刪除11個字符。如果字符串包含少於20個字符,則會得到ArgumentOutOfRangeException –

+0

@PanagiotisKanavos非常感謝你,因爲它的工作原理 – Brickarice

回答

1

我假設你收到一個ArgumentOutOfRangeException錯誤。 String.Remove(int,int)count參數指定要刪除的字符數,而不是結束索引。 bb.Remove(8,10)將從第9個字符開始刪除10個字符。如果你的字符串包含少於19個字符,你會得到一個ArgumentOutOfRangeException。

如果要刪除只是三個字符從9開始,你應該使用b.Remove(8,3)