[英]How to remove LAST INSTANCE of a character from a string
我正在使用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')
您可以使用“刪除”方法刪除某個位置的特定字符:
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-query,我強烈建議使用sql-parameters來阻止sql-injection 。 所以不要在sql-string中包含這些值。
。
string query = ext.Substring(0, ext.LastIndexOf(",")) + ext.Substring(ext.LastIndexOf(",") + 1);
或這個:
string query = ext.Remove(ext.LastIndexOf(","), 1);
嘗試這個。 簡單的邏輯
檢查以下條件是否為befor append逗號行
**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(",");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.