2017-02-10 76 views
-2

如何查找给定的VB.Net字符串是否具有vbCrLf,vbTab和其他内置常量,然后用其他字符替换它们下划线或连字符等。我被困在下面的代码一段时间,无法弄清楚为什么它不被替换。如何查找VB字符串变量是否具有vbTab并用下划线或其他字符替换

 Dim msg As String 
     msg = "Hello I am test message" & vbTab & vbTab & " After two tabs " & vbCrLf & "I am in next line" 
     msg = msg.Replace("vbTab", "____") 
     msg = msg.Replace("&vbTab&", "****") 
     MessageBox.Show(msg) 

输出:我得到tab而不是下划线或asterich。

enter image description here

+2

怎么样'Dim Replaced As String = MyStringVariable.Replace(vbTab,“_”)'? – Waescher

+0

vbCrLf和vbTab不是功能。从技术上讲,它们是代表控制代码的常量(vbTab被定义为制表符控制字符,vbCrLf是回车+换行符。) –

+0

负载示例如何执行此操作。 Google是你的朋友。 – Bugs

回答

1

你的问题是,你正在试图取代的5个字符“vbTab”一个字符串,而不是制表符。

在替换功能删除周围vbTab引号,你会得到的下划线在输出

Dim msg As String 
msg = "Hello I am test message" & vbTab & vbTab & " After two tabs " & vbCrLf & "I am in next line" 
msg = msg.Replace(vbTab, "____") 
''msg = msg.Replace("&vbTab&", "****") No idea how to fix this as it will never match anything 
MessageBox.Show(msg) 

我不知道你想与你的第二个实现替换,因为这似乎是什么试图替换由两个连接运算符包围的制表符。连接运算符永远不会在字符串中,并且在执行第一个Replace之后,不会有任何vbTab保留。

相关问题