我尝试让用户可以在CustomerName中搜索带引号的客户。
用户在customerNameTextBox中搜索设置为customerNameTB的用户。
如果用户使用引号('),它将替换为双引号。
如果有三重引号('''),它将被替换为双引号。
这是我的代码:
string customerNameTB = customerNameTextbox.Text;
customerNameTB.Replace("'", "''");
while (customerNameTB.Contains("'''"))
{
customerNameTB.Replace("'''", "''");
}
此代码后的结果是引号仍是单引号。
这段代码有什么不对。
在回答后编辑
我的代码应如下所示:
string customerNameTB = customerNameTextbox.Text;
customerNameTB = customerNameTB.Replace("'", "''");
while (customerNameTB.Contains("'''"))
{
customerNameTB = customerNameTB.Replace("'''", "''");
}
答案 0 :(得分:5)
你关闭了!这就是你需要的:
string customerNameTB = customerNameTextbox.Text;
// single quotes
customerNameTB = customerNameTB.Replace("'", "''");
// triple quotes
customerNameTB = customerNameTB.Replace("'''", "''");
替换不会在原始字符串中替换它,它会返回一个新的字符串,您必须将其分配给某个东西,否则它就会被丢弃。
答案 1 :(得分:1)
String.Replace不会修改它运行的字符串。 您需要将Replace的结果分配给您的字符串:
:inoremap <silent> <C-w> <C-\><C-O>d<C-Left>
此外,不需要循环,因为Replace会替换所有出现的搜索字符串。