Can';在vb.net中从字符串中修剪句点(…)和省略号(…)

Can';在vb.net中从字符串中修剪句点(…)和省略号(…),vb.net,string,Vb.net,String,当我尝试使用string.trim删除字符时,得到了一个非常奇怪的结果 我想从字符串中删除前导和尾随句点(…),但我的代码出于某种原因只删除尾随字符。微软的文档说string.trim(char数组)方法应该从字符串的开头和结尾进行修剪。 我修剪字符串的代码是。。。 mystring=mystring.trim(“.”) 如果输入为“2342…”,则缩短为“2342”,但如果输入为“…2342”,则输出仍为“…2342” 我尝试过定义一个包含1个成员(即“”)的字符数组,但得到了相同的结果 我

当我尝试使用string.trim删除字符时,得到了一个非常奇怪的结果

我想从字符串中删除前导和尾随句点(…),但我的代码出于某种原因只删除尾随字符。微软的文档说string.trim(char数组)方法应该从字符串的开头和结尾进行修剪。

我修剪字符串的代码是。。。
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))