2012-04-20 156 views
1

我有一个字符串,例如如何从字符串中删除特定位置的字符?

Dim str as string = xxxxxxxxxxxxxxxxxxxx£xxx£xxxx**£**xxxxxxxxxx 

我想删除总是处于特定位置(例如第11位)的粗体。整个字符串是一个很长的字符串,总是会改变大小,不能从头开始计数。无法使用替换,在其他位置可能有相同的字符,我不想删除。

SOLUTION:RST昏暗作为字符串= str.Remove(str.Length - 11,1)

感谢。

大号

+0

这个怎么样http://msdn.microsoft.com/en-us/library/kxbw3kwc.aspx – Rrjrjtlokrthjji 2012-04-20 18:37:35

+0

良好的链接感谢感谢 – lawphotog 2012-04-20 18:58:16

回答

1

编辑:哎呀,我不知道我在想什么对第一部分..

第一部分的正确版本是:

海峡= str.Substring(0,str.Len - 13)+ str.Substring(str.Len-11);

还有可能对String.Delete功能,使您可以使用一个负数从字符串的结尾表示的字符数过载 - 我知道C#相当于做..

+1

谢谢菲利普..你说得很对..其实很简单,当我知道怎么做的时候..在这里我得到了.. Dim rst As String = str.Remove(str.Length - 11,1) – lawphotog 2012-04-20 18:54:35

+0

是的,这可能是一个更直接的方式来做到这一点..好赶上! – 2012-04-20 18:56:27

+0

@LaurenceNyein:您应该添加该代码作为答案! – 2012-04-20 20:20:42

1

如果它总是会从你能做到这一点结束的第11字...

Dim strTargetString As String = "xxxYxxxxxxxxxx" 
    Dim strTargetString2 As String = "xxxxxxxYxxxxxxxxxx" 

    Dim strResult As String = Mid(strTargetString, 1, (Len(strTargetString) - 11)) & Microsoft.VisualBasic.Right(strTargetString, 10) 
    Dim strResult2 As String = Mid(strTargetString2, 1, (Len(strTargetString2) - 11)) & Microsoft.VisualBasic.Right(strTargetString, 10) 

注意String.SubString是一个更现代的方法比中旬,我却用它出于偏好和榜样。

+0

感谢您的帮助! – lawphotog 2012-04-20 18:55:42

1

这种使用是用正则表达式替换操作相当简单前瞻:

Dim str as String = "xxxxxxxxxxxxxxxxxxxx£xxx£xxxx£xxxxxxxxxx" 
Dim str2 as String = Regex.Replace(str, "£(?=.{10}$)", String.Empty) 

这将针对单个字符,然后再任意十个字符的字符串的结尾,并与String.Empty值来替换它(或只是""如果你愿意)。

+0

感谢帮助的人! – lawphotog 2012-04-20 18:56:19

相关问题