Can';在vb.net中从字符串中修剪句点(…)和省略号(…)
当我尝试使用string.trim删除字符时,得到了一个非常奇怪的结果 我想从字符串中删除前导和尾随句点(…),但我的代码出于某种原因只删除尾随字符。微软的文档说string.trim(char数组)方法应该从字符串的开头和结尾进行修剪。 我修剪字符串的代码是。。。Can';在vb.net中从字符串中修剪句点(…)和省略号(…),vb.net,string,Vb.net,String,当我尝试使用string.trim删除字符时,得到了一个非常奇怪的结果 我想从字符串中删除前导和尾随句点(…),但我的代码出于某种原因只删除尾随字符。微软的文档说string.trim(char数组)方法应该从字符串的开头和结尾进行修剪。 我修剪字符串的代码是。。。 mystring=mystring.trim(“.”) 如果输入为“2342…”,则缩短为“2342”,但如果输入为“…2342”,则输出仍为“…2342” 我尝试过定义一个包含1个成员(即“”)的字符数组,但得到了相同的结果 我
mystring=mystring.trim(“.”)
如果输入为“2342…”,则缩短为“2342”,但如果输入为“…2342”,则输出仍为“…2342”
我尝试过定义一个包含1个成员(即“”)的字符数组,但得到了相同的结果
我也尝试过mystring.trimstart(“.”),但它也不起作用
我很困惑为什么我会有这种行为
编辑/解决:
mystring包含两个不同的字符,表示点(.)
mystring中的一个字符是三个点作为省略号(三个点一起编码为一个字符,值为133)。另一个是简单时期(值46)
这就解决了问题:
mystring=mystring.Trim(Chr(133)) 'removes ellipsis
mystring=mystring.Trim(Chr(46)) 'removes periods
我现在就试过了:
Dim mystring = "...2342"
mystring = mystring.Trim(".")
Console.WriteLine(mystring)
但结果总是2342您确定“…2342”中的第一个字符是“.”吗?您检查过它的ASCII值吗?
您使用的是哪种框架?我使用的是Framework4.0 已编辑:尝试此操作以获取ascii值
For Each c As Char In mystring.ToCharArray()
Console.Write(Hex(Asc(c)) & "-")
Next
Console.WriteLine()
我现在就试过了:
Dim mystring = "...2342"
mystring = mystring.Trim(".")
Console.WriteLine(mystring)
但结果总是2342您确定“…2342”中的第一个字符是“.”吗?您检查过它的ASCII值吗?
您使用的是哪种框架?我使用的是Framework4.0 已编辑:尝试此操作以获取ascii值
For Each c As Char In mystring.ToCharArray()
Console.Write(Hex(Asc(c)) & "-")
Next
Console.WriteLine()
刚刚试过这个:
Dim mystring = "...2342"
mystring = mystring.Trim(".")
无论我尝试什么排列,mystring总是2342
你确定正确地检查了结果了吗?在操作发生之前,你没有在中断模式下检查它吗
我同意@Marco的说法,也许你使用的“.”与输入不一样。刚刚尝试了以下方法:
Dim mystring = "...2342"
mystring = mystring.Trim(".")
无论我尝试什么排列,mystring总是2342
你确定正确地检查了结果了吗?在操作发生之前,你没有在中断模式下检查它吗
我同意@Marco,也许你使用的“.”与输入不一样。是的。你的结果很有道理。但我不明白。我尝试重新启动visual studio,但没有成功。也许这和我的程序进行字符编码的方式有关?@akh2103:提取第一个字符的ASCII码,并将其和“.”中的一个进行比较;如果是不同的,你已经发现了问题…@Marco-哦,是的,抱歉,我会删除我的评论,因为它没有任何意义sense@akh2103当前位置我看到你解决了麻烦。记住,如果你认为它解决了(或有助于解决)你的问题,你应该这样做。你的结果很有道理。但我不明白。我尝试重新启动visual studio,但没有成功。也许这和我的程序进行字符编码的方式有关?@akh2103:提取第一个字符的ASCII码,并将其和“.”中的一个进行比较;如果是不同的,你已经发现了问题…@Marco-哦,是的,抱歉,我会删除我的评论,因为它没有任何意义sense@akh2103当前位置我看到你解决了麻烦。记住,如果你认为它解决了(或有助于解决)你的问题,你应该这样做。有没有关于如何找出这两个句点是否是同一个字符的提示?是的。关于如何找出这两个句点是否是同一个字符的任何指针?如果您认为更可读,也不要忘记可以嵌套
Trim
方法:mystring=mystring.Trim(Chr(133)).Trim(Chr(46))
也不要忘记,如果您认为是更具可读性的话,可以嵌套Trim
方法:mystring=mystring.Trim(Chr(133)).Trim(Chr(46))