在字符串中插入一个字符(indexof)

时间:2017-06-26 20:18:11

标签: string vb.net character

我想要做的是在特定点插入所需的字符,如“空格”,如“123456789”。示例:在字符串123456789 = 1234 56789中的位置5处插入一个空格。这是我的代码:

    Dim str As String = sum2.Text '123456789
    Dim insStr As String = " " 'space
    Dim strRes As String = str.Insert(5, insStr) '5th position

代码看起来很好,我使用它或运行它时不会出现任何错误,但它不会在第5位添加空间,所以我需要一些帮助!

1 个答案:

答案 0 :(得分:2)

您不能认为String.Insert(Integer, String)中的startIndex为零。这意味着如果您打算在第5个位置插入一个空格,则必须将其调整为-1:

Dim insertPosition = 5 ' Assuming this came from the user who says put it in position 5
Dim inStr = " "
Dim strRes = str.Insert(insertPosition - 1, inStr) ' assuming your str already had a value.

那将插入4到5之间的空格并生成

  

1234 56789

我在你的评论中看到你可能想要在1,5,7位置插入空格。在这种情况下,您必须反向进行,从最大位置开始到最小位置。这是假设您想要

的原因
  

_1234_6_89

我使用下划线来表示空格,以便您可以更好地看到它。

在使用之前,请确保您的字符串有足够的字符可供索引编入索引,否则您将获得ArgumentOutOfRangeException