[英]trim string at the end of the string
您好,我想從C#中刪除句子中的最后一個單詞。 這是我的查詢:
"SELECT * FROM People WHERE City = @City AND County = @County AND"
我想以編程方式刪除最后一個AND,該怎么做? 謝謝
string myString = "SELECT * FROM People WHERE City = @City AND County = @County AND";
Console.WriteLine(myString.Substring(0, myString.LastIndexOf(' ')));
但是您也可以考慮從一開始就構建沒有最后一個AND的AND子句。
List<string> andConditions = new List<string>();
andConditions.Add("City = @City");
andConditions.Add("County = @County");
string myString = "SELECT * FROM People WHERE " + string.Join(" AND ", andConditions);
修復給定字符串的多種方法。
這看起來像是動態生成的SQL,因此,在我看來,更明智的解決方案是永遠不要在那里擁有最終的AND
。 這可以通過計算已添加到where
子句中的參數的數量,並where
第一個之后的每個參數之前加上and
來完成。
如果最后一個詞始終是“ AND”:
if (yourString.EndsWith(" AND"))
yourString = yourString.Remove(yourString.Length - 4);
或者,如果您需要截斷超出最終空間的所有內容,請執行以下操作:
int index = yourString.LastIndexOf(' ');
if (index > -1)
yourString = yourString.Remove(index);
(盡管, 正如Donnie所說的 ,真正的正確答案是不要首先將多余的最終單詞附加到字符串中。)
var query = "SELECT * FROM People WHERE City = @City AND County = @County AND";
var scrubbed = query.Substring(0, query.Length - 4);
也可以通過
//............
string query = SELECT * FROM People WHERE City = @City AND County = @County AND";
char[] charsAND = { 'A', 'N', 'D'};
char[] charsOR = { 'O', 'R'};
query = query.Trim().TrimEnd(charsAND).TrimEnd(charsOR);
//
其他方式:
string myString = "SELECT * FROM People WHERE City = @City AND County = @County AND";
myString = myString.TrimEnd(" AND".ToCharArray());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.