如何从字符串中删除字符的最后一个实例

Ano*_*urn 6 c# asp.net string trim character

我正在使用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();
Run Code Online (Sandbox Code Playgroud)

但是,","我的字符串结束了.我试过用

string query = ext.Substring(0, ext.LastIndexOf(",") + 1);
Run Code Online (Sandbox Code Playgroud)

去除剩余",",但这也删除了")".

如何仅删除最后一个逗号?

实际结果:INSERT INTO .... VALUES('1','2','3',)

期望的结果:INSERT INTO .... VALUES('1','2','3')

Azh*_*any 16

您可以使用"删除"方法删除某个位置的特定字符:

query = query.Remove(query.LastIndexOf(","), 1);
Run Code Online (Sandbox Code Playgroud)


xan*_*tos 2

这:

Q.Append(")");
Run Code Online (Sandbox Code Playgroud)

用。。。来代替

if (col_no > 0)
{
    Q.Length--;
}

Q.Append(")");
Run Code Online (Sandbox Code Playgroud)

这个检查if (col_no > 0)有点过分了,因为如果没有列,查询仍然会因为其他原因而失败,但是如果我们认为这是一个关于如何在 a 中组合字符串的模板StringBuilder,那么检查就是正确的做法。

啊...以这种方式构建查询是错误的做法。