如何从字符串中删除字符的最后一个实例
本文关键字:字符 最后一个 实例 删除 字符串 | 更新日期: 2023-09-27 18:28:14
我正在用StringBuilder构建一个字符串。
StringBuilder Q = new StringBuilder();
Q.Append("INSERT INTO ");
Q.Append(_lstview_item);
Q.Append(" VALUES");
Q.Append("(");
for (i = 0; i < col_no; i++)
{
Q.Append("'");
Q.Append(col_value[i]);
Q.Append("'");
Q.Append(",");
}
Q.Append(")");
string query = Q.ToString();
然而,我在字符串的末尾得到了一个","
。我试过使用
string query = ext.Substring(0, ext.LastIndexOf(",") + 1);
以去除多余的","
,但这也去除了")"
。
如何仅删除最后一个逗号?
实际结果:INSERT INTO .... VALUES('1','2','3',)
所需结果:INSERT INTO .... VALUES('1','2','3')
您可以使用"Remove"方法删除某个位置的特定字符:
query = query.Remove(query.LastIndexOf(","), 1);
这:
Q.Append(")");
替换为
if (col_no > 0)
{
Q.Length--;
}
Q.Append(")");
检查if (col_no > 0)
有点过分,因为如果没有列,查询仍然会因为其他原因而失败,但如果我们认为这是一个关于如何在StringBuilder
中组合字符串的模板,那么检查是正确的
啊。。。以这种方式构建查询是错误的
我建议在添加最后一个)
之前先删除逗号,所以:
for (i = 0; i < col_no; i++)
{
Q.Append("'");
Q.Append(col_value[i]);
Q.Append("'");
Q.Append(",");
}
if(col_no > 0) Q.Length --; // <-- this removes the last character
Q.Append(")");
string query = Q.ToString();
但是,如果您真的想创建一个sql查询,我强烈建议使用sql参数来防止sql注入。因此,不要在sql字符串中包含这些值。
- 实现目标的正确方法是使用参数化查询
- 有可能在放入括号之前删除最后一个昏迷
- 你的问题的纯粹答案可以是:
string query = ext.Substring(0, ext.LastIndexOf(",")) + ext.Substring(ext.LastIndexOf(",") + 1);
或者这个:
string query = ext.Remove(ext.LastIndexOf(","), 1);
试试这个。简单逻辑
如果在附加逗号行之前存在条件,请检查以下内容
**if(i!=(col_no-1))
{
Q.Append(",");
}*
使用您的代码。
for (i = 0; i < col_no; i++)
{
Q.Append("'");
Q.Append(col_value[i]);
Q.Append("'");
**if(i!=(col_no-1))
{
Q.Append(",");
}**
}
更换
Q.Append(",");
在带有的for循环内
if (i != col_no - 1)
{
Q.Append(",");
}